为什么签名android apk没有在模拟器上运行

时间:2010-03-31 07:51:10

标签: java android apk signing

我已经制作了一个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]

决议是什么?

6 个答案:

答案 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)

您可以检查客户端是否未在模拟器中禁用未签名应用程序的安装。