我已经制作了一个android项目的签名apk。每当我的客户端尝试在模拟器上运行它时,他都会面临以下错误消息:
D:\Android\android-sdk-
windows\tools>adb install -r abc.apk
500 KB/s (6940708 bytes in 13.534s)
pkg: /data/local/tmp/abc.apk
Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]
决议是什么?
答案 0 :(得分:15)
在我的情况下,这是因为我在运行JDK 7的计算机上签名。降级到JDK 6修复了问题。感谢java.lang.SecurityException when install apk提出建议!
答案 1 :(得分:8)
正如steelbytes所提到的,错误INSTALL_PARSE_FAILED_NO_CERTIFICATES
表明APK没有像您认为的那样签名。
运行此命令以验证用于签署APK的证书:
jarsigner -verify -verbose -certs abc.apk
对于APK中的每个条目,您应该看到如下内容:
sm 152412 Wed Oct 14 14:16:52 CEST 2009 classes.dex X.509, CN=Meebo, OU=Meebo, O=Meebo, L=Mountain View, ST=California, C=US [certificate is valid from 28/10/08 06:49 to 13/08/82 07:49]
否则,如果APK未签名,您将收到消息jar is unsigned
。
答案 2 :(得分:2)
尝试以下代码,它对我有用。
Below line run when your jdk version is 6 for singing the apk
H:\Keytool>"C:\Program Files\Java\jdk1.6.0_09\bin\jarsigner.exe" -verbose -keystore donate.keystore "H:\Keytool\yourapkName.apk.apk" donate.keystore
Below line run when your jdk version is 7 for singing the apk
H:\Keytool>"C:\Program Files\Java\jdk1.7.0_21\bin\jarsigner.exe" -verbose -keyst
ore denote.keyStore "H:\Keytool\yourapkName.apk" denote.keyStore -digestalg SHA1 -sigalg MD5withRSA
答案 3 :(得分:1)
正如Dan指出的那样,检查一下你是否正在运行JDK 7.更多信息:http://code.google.com/p/android/issues/detail?id=19567
答案 4 :(得分:0)
您可以运行命令:
C:\Program Files\Android\android-sdk\platform-tools>adb logcat
它将为您提供有关未签名的确切文件的更多详细信息:
Package has no certificates at entry assets/META-INF/AIR/application.xml; ignoring!
答案 5 :(得分:-1)
您可以检查客户端是否未在模拟器中禁用未签名应用程序的安装。