12

Android Studio バージョン 2.2.2 と gradle バージョン 2.2.2 を使用して Android アプリケーションを開発しています。署名付き APK を生成しようとしています。Android Studio で署名付き APK を生成するための通常のプロセスを実行しました。その後、Zipalign処理を行いました。生成された APK は Android 6 以下で正常に動作します。ただし、Android N の場合、APK のインストール中に次のエラーが表示されます。

    Failed to install C:\Users\User\AppData\Roaming\Skype\My Skype Received Files\ap
p-dev3-release_zipalign.apk: Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES: Fail
ed to collect certificates from /data/app/vmdl25816781.tmp/base.apk: META-INF/CE
RT.SF indicates /data/app/vmdl25816781.tmp/base.apk is signed using APK Signatur
e Scheme v2, but no such signature was found. Signature stripped?]

ドキュメント Android studio 2.2 に従って、署名 V1 および V2 の署名を自己処理します。私は何か間違ったことをしていますか?助けが要る。

4

1 に答える 1

19

Gradle 用の Android プラグインと Android Studio 2.2 以降は、デフォルトで v1 (JAR 署名) および v2 スキーム (APK 署名スキーム v2) で署名された APK を生成します。v2 で署名された APK を変更すると、Android Nougat (Android 7.0) 以降で検証される v2 署名が無効になるため、Android Nougat 以降で APK をインストールできなくなります。

ソリューション:

  1. 署名済みの APK で zipalign を実行しないでください。Gradle および Android Studio 用の Android プラグインは、リリース ビルド用に既に zip で整列された APK を生成します。

  2. zipalign を実行する必要がある場合は、APK が署名される前に実行してください。https://developer.android.com/studio/command-line/zipalign.htmlおよびhttps://developer.android.com/studio/publish/app-signing.html#signing-manuallyを参照してください。

  3. build.gradle ファイルで v2 署名を無効にします。https://developer.android.com/studio/releases/gradle-plugin.html、特に v2SigningEnabledを参照してください。

于 2017-01-21T20:39:57.390 に答える