首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安装错误: INSTALL_PARSE_FAILED_NO_CERTIFICATES

安装错误: INSTALL_PARSE_FAILED_NO_CERTIFICATES
EN

Stack Overflow用户
提问于 2011-06-09 00:34:47
回答 7查看 51.2K关注 0票数 19

冒着重复似乎是非常常见的抱怨的风险,我认为我在这个bug上有一个实质性的变化。

应用程序不会从Eclipse安装,控制台中会显示以下内容: Installation error: INSTALL_PARSE_FAILED_NO_CERTIFICATES。

LogCat提供了一些启发: Package com.xxx在条目assets/fonts/helvetica_neue.ttf中没有证书;忽略!

这意味着设备(或仿真器)认为这个特定的文件没有签名。

为此提出的通常解决方案是:

  • 重命名有问题的文件。我们已经尝试过了,然后它会抱怨下一个文件,然后是下一个文件,依此类推。
  • 添加了一个虚拟文件。我也试过了。它抱怨新文件,不管它的called.
  • Compile版本高于Android1.6。我们正在编译2.3版本。

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

任何见解或建议都将是非常受欢迎的,当然,如果我们自己弄明白了,我会发布任何发现。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-06-09 18:15:16

现在这个问题已经解决了。如果有人发现自己有相同的独特项目设置和bug,那么这个解决方案可能会有一些价值。

问题源于我们的测试项目(包含单元测试的项目)的POM中资源目录的配置。它们指向正在测试的项目的资源目录。这个设置应该可以工作,所以我猜是Maven Android插件中的一个bug导致资源保持未签名状态。

因此,解决方案是删除对外部资源目录的引用(我不能说为什么一开始会这样做,但删除它们似乎没有不良影响),并以标准方式配置资源目录(以maven plugin项目原型提供的POM为例)。

票数 2
EN

Stack Overflow用户

发布于 2012-05-01 20:12:34

我在正常的调试过程中遇到了这个问题--虽然这不太可能总是有帮助,但只需转到->项目清理并重新构建所有内容,就足以清除错误。

票数 16
EN

Stack Overflow用户

发布于 2012-04-10 13:01:19

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

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

注意:从JDK7开始,默认的签名算法已经更改,要求您在签名APK时指定签名和摘要算法(-sigalg和-digestalg)。

我有JDK 7,我不能代表你的Maven,但这可能是同样的问题。在我的Ant日志中,我使用-v表示详细,结果显示

代码语言:javascript
复制
$ 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签名,并对齐它,但它给出了一个略有不同的错误:

代码语言:javascript
复制
$ "$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

我只需要卸载它,然后它就能工作了!

代码语言:javascript
复制
$ 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就可以在签名时使用这些选项了!

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6282169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档