2

我已经为一个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]

分辨率是多少?

4

6 回答 6

15

就我而言,这是因为我在运行 JDK 7 的机器上对其进行了签名。降级到 JDK 6 解决了这个问题。感谢java.lang.SecurityException 安装 apk的建议!

于 2011-09-09T18:26:16.860 回答
8

正如 steelbytes 所提到的,该错误INSTALL_PARSE_FAILED_NO_CERTIFICATES表明 APK 没有像您想象的那样签名。

运行以下命令以验证使用哪个证书对 APK 进行签名:
jarsigner -verify -verbose -certs abc.apk

对于 APK 中的每个条目,您应该会看到如下内容:

sm 152412 10 月 14 日星期三 14:16:52 CEST 2009 classes.dex

      X.509,CN=Meebo,OU=Meebo,O=Meebo,L=山景,ST=加利福尼亚,C=US
      [证书有效期为 28/10/08 06:49 至 13/08/82 07:49]

否则,如果 APK 未签名,您将收到消息jar is unsigned

于 2010-04-01T17:36:34.753 回答
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
于 2013-04-30T14:13:42.043 回答
1

正如 Dan 指出的那样,检查您是否正在运行 JDK 7。更多信息: http ://code.google.com/p/android/issues/detail?id=19567

于 2011-12-15T18:52:05.737 回答
0

您可以运行命令:

C:\Program Files\Android\android-sdk\platform-tools>adb logcat

它将为您提供有关未签名的确切文件的更多详细信息:

Package has no certificates at entry assets/META-INF/AIR/application.xml; ignoring! 
于 2011-07-07T21:37:08.310 回答
-1

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

于 2010-04-01T16:56:25.397 回答