安装错误:INSTALL
冒着重复看起来很常见的抱怨的风险,我认为我对这个bug有很大的变化。
该应用程序不会从Eclipse安装,而是出现在控制台中:安装错误:INSTALL_PARSE_FAILED_NO_CERTIFICATES。
LogCat提供了一些照明:Package com.xxx在entry assets / fonts / helvetica_neue.ttf上没有证书; 无视!
意味着设备(或模拟器)认为该特定文件未被签名。
为此提出的通常解决方案是:
- 重命名有问题的文件。 我们已经尝试过,然后抱怨下一个文件,然后下一个文件,等等。
- 添加一个虚拟文件。 试过了。 它抱怨新文件,不管它叫什么。
- 编译超过Android 1.6。 我们正在编译2.3。
值得注意的是,这只有在我们发起单元测试时才会发生。 我们可以毫无困难地自行安装“真实”应用程序。 我们也使用Maven,当然还有Maven Android插件。
任何见解或建议都将非常受欢迎,当然如果我们自己想出来,我会发布任何调查结果。
我通过正常的调试遇到了这种情况 - 虽然它不可能一直有帮助,但只需进入项目 - >清理并重建所有内容就足以清除错误。
我发现这是由于我的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 FilesJavajdk1.7.0_03binjarsigner.exe' with arguments:
[signjar] '-keystore'
[signjar] 'C:cygwinhomeChloepairfinderrelease.keystore'
[signjar] '-signedjar'
[signjar] 'C:cygwinhomeChloepairfinderbinPairFinder-release-unaligned.apk'
[signjar] 'C:cygwinhomeChloepairfinderbinPairFinder-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)
我在这里找到答案。
如何在不卸载的情况下处理INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES
我只需要卸载它,然后它工作!
$ 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以在签名时使用这些选项!
对于那些有这个问题的人...
选择V1(jar签名)而不是V2(完整apk签名)
选择V2也可能导致此问题。
链接地址: http://www.djcxy.com/p/90693.html