即使原应用完全删除,仍然出现"INSTALL_FAILED_UPDATE_INCOMPATIBLE"错误提示。

9
我正在尝试将一个修改后的apk文件安装到我的Nook Simple Touch上。我已经修改了Reader.apk程序,重新编译并使用自己的密钥进行签名。
我知道如果签名密钥不同,你不能安装与当前应用重复的应用。然而,即使完全卸载原始的Reader.apk应用程序,我仍然得到错误代码“INSTALL_FAILED_UPDATE_INCOMPATIBLE”。
在检查packages.xml文件后,我删除了旧的Reader.apk应用程序的条目。但是我仍然遇到此错误。应用程序已经完全卸载,我无法安装我的修改版本。
甚至用我的新密钥对原始源代码进行签名也会导致这个错误出现(因此这与我所做的实际更改无关)。

最初,我在“设置”->“应用程序”下找不到我的已卸载应用程序。原来在Lollipop 5.1.1中,已卸载的应用程序是按包名而不是应用程序名称列出的。因此,如果您执行了adb卸载,并且adb安装仍然失败,请查找您的卸载应用程序的包名。因此,“com.acme.wileycoyote”将按字母顺序列在“c”下,而不是“w”下。 - Yojimbo
可能是Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE] even if app is not yet installed的重复问题。 - Ciro Santilli OurBigBook.com
@StephenSchrauger,共识是日期不是决定性因素http://meta.stackexchange.com/questions/147643/should-i-vote-to-close-a-duplicate-question-even-though-its-much-newer-and-ha,但如果您认为它们不同,那对我来说就足够了。 - Ciro Santilli OurBigBook.com
3个回答

6
根据文档,如果与新包签名不同的相同名称的先前安装包存在(且旧包的数据未被删除),则会出现此错误。如果您确定已将其删除,则可能存在某个地方仍然存在旧签名,而卸载未完全清除。清除模拟器/设备数据应该可以解决问题。

这是一个很好的观点,我必须寻找其他具有相同签名的位置。然而,这不是模拟器,而且所讨论的应用程序已经嵌入到系统映像中。当然,我可以修改映像,但我仍然遇到了相同的错误,这就是为什么我发布了问题和我后来发现的解决方案的原因。 - Stephen S
我曾经遇到同样的问题,但是按照我所说的做法让我的应用程序正常工作了,希望这能有所帮助。 - ashim888
1
在更换电脑后,我遇到了这个问题。该应用程序有一些无法删除的“幽灵”文件。解决方案是构建一个签名的APK,从内存/SD卡安装应用程序,然后卸载。现在它可以正常工作了。 - BayssMekanique

3
如果原始应用程序已完全删除,但我们仍然收到相同的消息:
INSTALL_FAILED_UPDATE_INCOMPATIBLE 

前往 设置 > 应用,您会发现您的应用程序并显示以下消息:

"未安装此用户"

我们需要选择选项手动卸载所有用户的应用程序:

"卸载所有用户"


Nook Simple Touch没有多用户功能。 - Stephen S

2
解决方法是修改 AndroidManifest.xml 文件。您需要删除第二行中的 sharedUserId 属性。
Reader.apk 文件是系统应用程序,由设备制造商制作,并制作了其他几个应用程序。因此,它们能够设置 sharedUserId 标志,这使得它们所有的应用程序都可以相互交互。作为安全设计,所有应用程序都需要具有相同的签名密钥。当我尝试安装修改过的应用程序时,由于正在尝试与其他应用程序共享用户 ID 但缺少正确的签名密钥,因此安装失败。
通过在 xml 中删除标记,您可以成功安装修改后的应用程序。将AndroidManifest.xml文件中的以下行更改为:
<manifest android:sharedUserId="android.media" android:versionCode="1"
    android:versionName="1.0" package="com.bn.nook.reader.activities"
    xmlns:android="http://schemas.android.com/apk/res/android">

转换为:

<manifest android:versionCode="1" android:versionName="1.0"
    package="com.bn.nook.reader.activities"
    xmlns:android="http://schemas.android.com/apk/res/android">`

请查看这篇xda帖子以获取更多细节。(完全透明:我撰写了该帖子。)


这个答案对我没用,所以这里提供两个在 Stack Overflow 上可行的回答链接:1. https://dev59.com/R18d5IYBdhLWcg3weiB- 2. https://dev59.com/c2ct5IYBdhLWcg3wsPd5 - surhidamatya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接