第一次安装应用程序时INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES

时间:2011-08-23 06:35:45

标签: android

我正在尝试手动构建和签署应用程序,但在安装到模拟器之前,我连续成功安装一次后,我不断获得INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES

以防万一,我试图卸载该应用程序(是的,我提供了正确的Java包名称),但它没有解决问题。

我还尝试重新启动模拟器并标记“擦除用户数据”复选框。

包名称包含我们的公司名称,因此不会与内部包裹冲突。

我没有在互联网上找到任何其他解释错误,除了“你已经安装了同一个应用程序的另一个版本”,所以我有点被困在这里。

谢谢!

15 个答案:

答案 0 :(得分:144)

我也遇到了这个问题,原因是我已经安装了相同的应用程序,但使用不同的密钥(DEBUG密钥与发布密钥)签名。手动删除旧安装并重新安装解决了这个问题。

答案 1 :(得分:15)

这对我有用:

  • 转到设置
  • 然后选择应用
  • 选择已下载 onces
  • 选择应用为所有用户卸载

然后一切都像魅力一样。

答案 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)

  1. 在manifest.xml中更改包名称(例如,give = package =“com.first.rss”)
  2. 更改src中的名称
  3. 右键单击>重构>重命名......并给出一个名字。

答案 9 :(得分:1)

如果其他人遇到此故障,并且以上解决方案都不起作用,请确保在您申请时为您的应用禁用管理员权限。

答案 10 :(得分:1)

从多台计算机上处​​理应用程序时遇到同样的问题。尽管从我的设备上卸载了应用程序,问题仍然存在。但我发现该软件包仍然是为设备上的其他用户安装的。

在您的设备上,转到设置>应用程序并单击包。然后点击菜单/选项按钮,为所有用户选择“卸载”。

这应该允许应用再次在您的设备上安装。

答案 11 :(得分:0)

我在尝试对Genymotion执行gradle任务connectedDebugAndoidTest(或connectedAndroidTest)时遇到此问题。在普通模拟器上运行它解决了这个问题。

答案 12 :(得分:0)

如果您的设备中有访客用户切换到访客用户,请检查您的本机应用是否已安装在访客用户帐户中,请将其删除或删除您选择的访客用户,然后运行应用程序。希望这有帮助!

答案 13 :(得分:0)

当AndroidManifest中的程序包与Java文件中的程序包不同时,可能会发生这种情况

答案 14 :(得分:0)

我通过仅通过从设备上卸载来删除旧应用并重新构建来解决此问题。