我试着重新安装apk

$adb install -r new.apk

它显示了错误:

Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]

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

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

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


当前回答

这意味着应用程序的新副本(在开发机器上)与应用程序的旧副本(安装在设备/模拟器上)使用不同的签名密钥进行签名。例如,如果这是一个设备,您可能已经从不同的开发机器(例如,其他开发人员的机器)上放置了旧的副本。或者,旧的用您的生产密钥签名,新的用您的调试密钥签名。

其他回答

这意味着应用程序的新副本(在开发机器上)与应用程序的旧副本(安装在设备/模拟器上)使用不同的签名密钥进行签名。例如,如果这是一个设备,您可能已经从不同的开发机器(例如,其他开发人员的机器)上放置了旧的副本。或者,旧的用您的生产密钥签名,新的用您的调试密钥签名。

这是使用adb从设备卸载应用程序的命令:

adb uninstall <package name>

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

我有这个问题,试图在Genymotion上执行gradle任务connectedDebugAndoidTest(或connectedAndroidTest)。在普通模拟器上运行它解决了这个问题。

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

谢谢