我正在尝试手动构建和签署应用程序,但在安装到模拟器之前,我连续成功安装一次后,我不断获得INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES
。
以防万一,我试图卸载该应用程序(是的,我提供了正确的Java包名称),但它没有解决问题。
我还尝试重新启动模拟器并标记“擦除用户数据”复选框。
包名称包含我们的公司名称,因此不会与内部包裹冲突。
我没有在互联网上找到任何其他解释错误,除了“你已经安装了同一个应用程序的另一个版本”,所以我有点被困在这里。
谢谢!
答案 0 :(得分:144)
我也遇到了这个问题,原因是我已经安装了相同的应用程序,但使用不同的密钥(DEBUG密钥与发布密钥)签名。手动删除旧安装并重新安装解决了这个问题。
答案 1 :(得分:15)
这对我有用:
然后一切都像魅力一样。
答案 2 :(得分:9)
也许没有正确签名?尝试使用Eclipse或SDK Ant任务构建它并比较APK。或者使用jarsigner检查签名并确保它符合您的期望。
答案 3 :(得分:6)
我已经在设备上使用了APK>删除它解决了它为我> TNX
答案 4 :(得分:5)
我今天遇到了这个问题,看起来不止一次签署APK的行为导致了这一点。
当我使用标准的'ant debug'构建时,会自动使用调试密钥库进行签名,然后将文件添加到APK并使用调试密钥库重新签名,所有步骤和验证都会给我预期的结果,但是在安装时一个新的工厂重置机器,我得到这个消息。
当我使用标准的'ant release'构建时,按Ctrl-C跳过密码请求,然后将文件添加到APK并使用我的私钥库重新签名,一切都按预期工作。
您可以使用标准方法来构建APK文件,但在您辞职之前,您需要删除APK文件中的META-INF目录以取消签名。在Linux / Mac上,您可以使用命令 zip -d yourapp.apk“META-INF *”。
还有一件事:有些人报告在对齐的APK文件上执行取消签名/签名操作时出现问题,因此如果您有选项,则应该对未对齐的文件进行操作,然后 zipalign 作为最终版本步骤
答案 5 :(得分:3)
对于每个新版本,我们都在模拟器上运行测试。因为我们希望从每次新测试运行的已知配置开始,所以在删除旧的AVD后,我们每次都会创建一个新的AVD:
android delete avd -n $ {EMULATOR}
android create avd -n $ {EMULATOR} -t 26
即使在这个新创建的AVD上,我们也看到了:
失败[INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]
安装要测试的APK和JUnit测试APK时。
似乎对我们有用的是运行:
adb uninstall my.app.name
adb uninstall my.app.name.test
在新创建的模拟器上,即使这会导致
失败
最终安装(构建后)显示:
[exec] 1174 KB / s(3.683s中4430116字节)
[exec] pkg:/data/local/tmp/MainActivity-debug.apk
[exec]成功
对于测试中的APK和测试APK。
答案 6 :(得分:3)
尝试删除设备上的应用,然后在冰上运行
答案 7 :(得分:3)
这是唯一对我有用的东西:
$ adb uninstall com.example.testproj
希望有所帮助
答案 8 :(得分:1)
答案 9 :(得分:1)
如果其他人遇到此故障,并且以上解决方案都不起作用,请确保在您申请时为您的应用禁用管理员权限。
答案 10 :(得分:1)
从多台计算机上处理应用程序时遇到同样的问题。尽管从我的设备上卸载了应用程序,问题仍然存在。但我发现该软件包仍然是为设备上的其他用户安装的。
在您的设备上,转到设置>应用程序并单击包。然后点击菜单/选项按钮,为所有用户选择“卸载”。
这应该允许应用再次在您的设备上安装。
答案 11 :(得分:0)
我在尝试对Genymotion执行gradle任务connectedDebugAndoidTest
(或connectedAndroidTest
)时遇到此问题。在普通模拟器上运行它解决了这个问题。
答案 12 :(得分:0)
如果您的设备中有访客用户切换到访客用户,请检查您的本机应用是否已安装在访客用户帐户中,请将其删除或删除您选择的访客用户,然后运行应用程序。希望这有帮助!
答案 13 :(得分:0)
当AndroidManifest中的程序包与Java文件中的程序包不同时,可能会发生这种情况
答案 14 :(得分:0)
我通过仅通过从设备上卸载来删除旧应用并重新构建来解决此问题。