在Android studio中生成签名apk后无法安装apk

时间:2017-03-07 03:08:28

标签: android apk sign

我想将我的应用发布到Google Play。所以我按照这个link

我创建了一个密钥库,并成功构建了app-release.apk。但是当我将APK安装到我的设备上时,会出错:

~/Android/Sdk/platform-tools$ ./adb install ~/Downloads/libraries/LolliPin/app/app-release.apk 
[100%] /data/local/tmp/app-release.apk
        pkg: /data/local/tmp/app-release.apk
Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]

上传到开发者控制台后,该网站称应用尚未签名。

我再次尝试使用手动步骤:jarsigned - > zipalign - > apksigner但它没有运行。

请告诉我解决方案。非常感谢!

更新:当我通过apksigned验证apk(由android studio创建 - >生成apk签名)时,显示错误:

~/Android/Sdk/build-tools/25.0.2$ ./apksigner verify /home/haitt22/test/app-release.apk 
DOES NOT VERIFY
ERROR: No JAR signatures

更新2:当我在构建工具中使用apksigner签名时,记录:

/apksigner sign --ks /home/haitt22/test/test.jks /home/ubuntu/test/app-release-aligned.apk
Keystore password for signer #1: 
Exception in thread "main" java.lang.IllegalAccessError: class com.android.apksig.internal.apk.v1.V1SchemeSigner (in unnamed module @0x646d64ab) cannot access class sun.security.x509.AlgorithmId (in module java.base) because module java.base does not export sun.security.x509 to unnamed module @0x646d64ab
    at com.android.apksig.internal.apk.v1.V1SchemeSigner.getSupportedAlgorithmId(V1SchemeSigner.java:625)
    at com.android.apksig.internal.apk.v1.V1SchemeSigner.<clinit>(V1SchemeSigner.java:541)
    at com.android.apksig.DefaultApkSignerEngine.<init>(DefaultApkSignerEngine.java:149)
    at com.android.apksig.DefaultApkSignerEngine.<init>(DefaultApkSignerEngine.java:52)
    at com.android.apksig.DefaultApkSignerEngine$Builder.build(DefaultApkSignerEngine.java:902)
    at com.android.apksig.ApkSigner.sign(ApkSigner.java:259)
    at com.android.apksig.ApkSigner.sign(ApkSigner.java:178)
    at com.android.apksigner.ApkSignerTool.sign(ApkSignerTool.java:277)
    at com.android.apksigner.ApkSignerTool.main(ApkSignerTool.java:89)

2 个答案:

答案 0 :(得分:1)

您需要确保检查 Jar签名 APK签名

Both need to be checked

答案 1 :(得分:0)

使用OpenJDK 8. Java 9导致此问题