我试着重新安装apk

$adb install -r new.apk

它显示了错误:

Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]

一种解决方案是卸载并安装新的。apk,这很好。

但我想知道我是否可以重新构建apk并重新安装而不卸载。如。修改AndroidManifest.xml中的一些配置,或者不签署APK,等等。

如果您能告诉我“INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES”的全部含义,将不胜感激。


当前回答

不管怎样,我在给我的Cordova项目添加了一个新插件后遇到了这个问题。我一直有科尔多瓦做构建和安装直接在设备上通过USB。

我通过从设备上卸载应用程序来解决这个问题,在下一次部署时就没有问题了。

其他回答

当团队中的另一名开发人员在我试图部署的硬件设备上构建我们的应用程序时,我就遇到了这种情况。从硬件上卸载应用程序解决了我的问题。

只需从设备中删除旧版本并重新安装即可。因为设备。密钥存储库已经存在于设备中,所以只需卸载构建并重新安装APK即可。

谢谢

我在编写更新代码时更改了包的名称,这样我就可以通过Eclipse在我的设备上调试它,而不用删除已安装的旧版本。没有恢复我试图重新安装时使用的包名,我得到了同样的错误。使用相同的包名重新安装成功。

我今天也犯了同样的错误,但问题不是完全一样的。我正在使用ADB和安装在VirtualBox中的Android。我尝试安装我的应用程序的不同版本(有签名/没有签名,调试/发布模式),得到了两个错误:INSTALL_FAILED_UID_CHANGED和INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES。

现在,当查看/data/data/{package.name}时,我发现卸载应用程序后仍然存在一堆文件。我试图rm -rf它们,但没有成功:我得到了I/O错误。

解决办法是:

关闭虚拟机 使用vdfuse挂载VDI映像(读/写) 使用e2fsck修复Partition1映像文件 Umount并重启虚拟机

即使在卸载原始APK之后,我也得到了这个错误,这是令人困惑的。最后我意识到,我在自己的Nexus 7上设置了多个用户进行测试,而其中一个用户仍然安装了该应用程序。一旦我为所有用户卸载它,错误就消失了。