安装错误:INSTALL_PARSE_FAILED_NO_CERTIFICATES

时间:2011-06-08 16:34:47

标签: android

冒着重复看似非常普遍的抱怨的风险,我认为我对这个错误有很大的不同。

应用程序不会从Eclipse安装,并且会出现在控制台中:安装错误:INSTALL_PARSE_FAILED_NO_CERTIFICATES。

LogCat提供了一些照明:包com.xxx在entry assets / fonts / helvetica_neue.ttf没有证书;忽略!

表示设备(或模拟器)认为此特定文件未签名。

为此提出的通常解决方案是:
- 重命名违规文件。我们已经尝试过,然后它会抱怨下一个文件,然后是下一个文件,等等 - 添加一个虚拟文件。也试过了。它抱怨新文件,无论它叫什么。
- 编译大于Android 1.6。我们正在编译2.3。

值得注意的是,只有在我们启动单元测试时才会发生这种情况。我们可以毫无困难地自行安装“真正的”应用程序。我们也使用Maven,当然还有Maven Android插件。

任何见解或建议都会非常受欢迎,当然如果我们自己想出来,我会发布任何调查结果。

7 个答案:

答案 0 :(得分:15)

我通过正常调试遇到了这种情况 - 虽然它不太可能一直有用,只需转到Project - >清理和重建所有内容可能足以清除错误。

答案 1 :(得分:9)

我发现这是由于我的JDK版本。我遇到了'ant'这个问题,这是由于文档中提到的这个注意事项:

  

http://developer.android.com/guide/publishing/app-signing.html#signapp

     

警告:从JDK 7开始,默认签名算法已更改,要求您在签署APK时指定签名和摘要算法(-sigalg和-digestalg)。

我有JDK 7.我不能为你的Maven说话,但它可能是同一个问题。在我的Ant日志中,我使用-v作为详细信息并显示

$ ant -Dadb.device.arg=-d -v release install
[signjar] Executing 'C:\Program Files\Java\jdk1.7.0_03\bin\jarsigner.exe' with arguments:
[signjar] '-keystore'
[signjar] 'C:\cygwin\home\Chloe\pairfinder\release.keystore'
[signjar] '-signedjar'
[signjar] 'C:\cygwin\home\Chloe\pairfinder\bin\PairFinder-release-unaligned.apk'
[signjar] 'C:\cygwin\home\Chloe\pairfinder\bin\PairFinder-release-unsigned.apk'
[signjar] 'mykey'
 [exec]     pkg: /data/local/tmp/PairFinder-release.apk
 [exec] Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]

我手动签署了JAR并对其进行了zipaligned,但它给出了一个稍微不同的错误:

$ "$JAVA_HOME"/bin/jarsigner -sigalg MD5withRSA -digestalg SHA1 -keystore release.keystore -signedjar bin/PairFinder-release-unaligned.apk bin/PairFinder-release-unsigned.apk mykey
$ zipalign -v -f 4 bin/PairFinder-release-unaligned.apk bin/PairFinder-release.apk
$ adb -d install -r bin/PairFinder-release.apk
        pkg: /data/local/tmp/PairFinder-release.apk
Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]
641 KB/s (52620 bytes in 0.080s)

我发现这里已经回答了。

How to deal with INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES without uninstallation

我只需要卸载它然后就可以了!

$ adb -d uninstall com.kizbit.pairfinder
Success
$ adb -d install -r bin/PairFinder-release.apk
        pkg: /data/local/tmp/PairFinder-release.apk
Success
641 KB/s (52620 bytes in 0.080s)

现在我只需要在签名时修改build.xml以使用这些选项!

答案 2 :(得分:7)

对于有这个问题的人......

选择V1(jar签名)而不是V2(完整的apk签名)

选择V2也可能导致此问题。

enter image description here

答案 3 :(得分:2)

现在已修复。如果有人发现自己拥有相同的独特项目设置和错误,那么解决方案可能具有一定的价值。

问题源于我们的测试项目(包含我们的单元测试的项目)的POM中的资源目录的配置。他们指向正在测试的项目的资源目录。这个设置应该可行,所以我猜测它是Maven Android插件中的一个错误导致资源保持无符号。

所以解决方案是删除对外部资源目录的引用(我不能说为什么它最初以这种方式完成但是删除它们似乎没有任何不良影响)并以标准方式配置资源目录(以maven插件项目原型与测试提供的POM示例。

答案 4 :(得分:1)

我在使用MotoDev 3.0.0时遇到了这个问题

解决方案是删除模拟器并创建一个新模拟器。

实际上,您不需要删除旧的模拟器,只需创建一个新的模拟器,安装顺利进行。

答案 5 :(得分:1)

出现同样的问题,我被配置为在Android目标配置下使用App Store而不是调试,我还没有设置应用程序商店。切换回调试,很好。

答案 6 :(得分:0)

在Java偏好设置应用

中选择Java SE 6