繁体   English   中英

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

[英]Why signed android apk is not running on emulator

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

分辨率是多少?

在我的情况下,这是因为我在运行JDK 7的机器上签名。降级到JDK 6修复了问题。 感谢java.lang.SecurityException安装apk时的建议!

正如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

尝试下面的代码它对我有用。

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

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

您可以运行命令:

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

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

Package has no certificates at entry assets/META-INF/AIR/application.xml; ignoring! 

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM