我遇到了ADT v22和我一直在努力的APK的问题。
使用ADT v22.0.1我在“Debug”
中运行应用程序时收到此错误[2013-06-07 12:31:00 - Star Traders] Installation error: INSTALL_PARSE_FAILED_NO_CERTIFICATES
[2013-06-07 12:31:00 - Star Traders] Please check logcat output for more details.
[2013-06-07 12:31:01 - Star Traders] Launch canceled!
logcat包含
D/dalvikvm( 703): GC_FOR_MALLOC freed 467 objects / 234568 bytes in 189ms
D/NativeCrypto( 703): OpenSSL error 101105774: error:0606C06E:digital envelope routines:EVP_Ver:
W/PackageParser( 703): Exception reading assets/img/combatflowchart/BountyHunter.png in /data/app/vmdl41201.tmp
W/PackageParser( 703): java.lang.SecurityException: /data/app/vmdl41201.tmp failed verification of META-INF/CERT.SF
W/PackageParser( 703): at java.util.jar.JarVerifier.verifyCertificate(JarVerifier.java:320)
W/PackageParser( 703): at java.util.jar.JarVerifier.readCertificates(JarVerifier.java:272)
W/PackageParser( 703): at java.util.jar.JarFile.getInputStream(JarFile.java:392)
W/PackageParser( 703): at android.content.pm.PackageParser.loadCertificates(PackageParser.java:337)
W/PackageParser( 703): at android.content.pm.PackageParser.collectCertificates(PackageParser.java:508)
W/PackageParser( 703): at com.android.server.PackageManagerService.installPackageLI(PackageManagerService.java:5891)
W/PackageParser( 703): at com.android.server.PackageManagerService.access$2100(PackageManagerService.java:134)
W/PackageParser( 703): at com.android.server.PackageManagerService$5.run(PackageManagerService.java:4749)
W/PackageParser( 703): at android.os.Handler.handleCallback(Handler.java:587)
W/PackageParser( 703): at android.os.Handler.dispatchMessage(Handler.java:92)
W/PackageParser( 703): at android.os.Looper.loop(Looper.java:123)
W/PackageParser( 703): at android.os.HandlerThread.run(HandlerThread.java:60)
E/PackageParser( 703): Package com.corytrese.games.startraders has no certificates at entry assets/img/combatflowchart/BountyHunter.png; ignoring!
D/dalvikvm( 703): GC_EXPLICIT freed 5063 objects / 519480 bytes in 215ms
D/AndroidRuntime( 1576): Shutting down VM
我尝试通过删除“assets / img / combatflowchart / BountyHunter.png”来修复它,并且应用程序本身中没有任何文件删除能够删除错误,它只是移动到下一个文件。使用'aapt'工具,我可以看到文件已签名。
这发生在Android 2.2.1和Android 2.2.2上,但不发生在2.3.5,2.3.7,4.1.1或4.2
我已经能够通过删除〜/ .android / debug.keystore并允许ADT v22重新创建密钥来解决调试中的问题。
但是,旧密钥与多个服务相关联。旧的调试密钥适用于我的大多数测试设备,但这些2.2.x设备中的两个不再运行它(在ADT v22升级之后。)
有谁知道如何修复它......
Debug Key + ADT v22 + Android OS v2.2.1 = SUCCESS?
答案 0 :(得分:1)
我通过删除文件夹%user_profile%.android中的文件debug.keystore并重新编译Android项目来解决... 问题似乎得到了解决。
如果仍然无效,请尝试以下命令
keytool -genkey -v -keystore myapp.keystore -alias myapp -keyalg DSA -keysize 1024 -validity 10000
在我的情况下,当我在Eclipse上使用导出向导时会出现问题。 以下命令没问题(MyApp.apk是无符号的)。
jarsigner -verbose -keystore myapp.keystore MyApp.apk myapp
我的其他密钥库是SHA1withRSA算法,没问题。