冒着重复似乎是非常常见的抱怨的风险,我认为我在这个bug上有一个实质性的变化。
应用程序不会从Eclipse安装,控制台中会显示以下内容: Installation error: INSTALL_PARSE_FAILED_NO_CERTIFICATES。
LogCat提供了一些启发: Package com.xxx在条目assets/fonts/helvetica_neue.ttf中没有证书;忽略!
这意味着设备(或仿真器)认为这个特定的文件没有签名。
为此提出的通常解决方案是:
值得注意的是,只有在启动单元测试时才会发生这种情况。我们可以毫无困难地自行安装“真正的”应用程序。我们也在使用Maven,当然还有Maven Android插件。
任何见解或建议都将是非常受欢迎的,当然,如果我们自己弄明白了,我会发布任何发现。
发布于 2011-06-09 18:15:16
现在这个问题已经解决了。如果有人发现自己有相同的独特项目设置和bug,那么这个解决方案可能会有一些价值。
问题源于我们的测试项目(包含单元测试的项目)的POM中资源目录的配置。它们指向正在测试的项目的资源目录。这个设置应该可以工作,所以我猜是Maven Android插件中的一个bug导致资源保持未签名状态。
因此,解决方案是删除对外部资源目录的引用(我不能说为什么一开始会这样做,但删除它们似乎没有不良影响),并以标准方式配置资源目录(以maven plugin项目原型提供的POM为例)。
发布于 2012-05-01 20:12:34
我在正常的调试过程中遇到了这个问题--虽然这不太可能总是有帮助,但只需转到->项目清理并重新构建所有内容,就足以清除错误。
发布于 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表示详细,结果显示
$ 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签名,并对齐它,但它给出了一个略有不同的错误:
$ "$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就可以在签名时使用这些选项了!
https://stackoverflow.com/questions/6282169
复制相似问题