11

Android Studio をバージョン 2.2 に更新した後、Gradle プラグインの更新も取得しました (2.1.3 でした)。

...
classpath 'com.android.tools.build:gradle:2.2.0'
...

アラインされていないバリアント APK ファイルが表示されますが、他のバリアントは生成されなくなりました。zip align を有効にしようとしました:

buildTypes {
        release {
            minifyEnabled false
            zipAlignEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }
        debug {
            applicationIdSuffix '.debug'
        }
}  

しかし、何も変わりません。何か案は?

に戻って「解決」しました

classpath 'com.android.tools.build:gradle:2.1.3'

プロジェクト レベルでbuild.gradle

編集 (20160922):

Fayder Florezの回答に感謝します。正解です。ビルド環境は apk を 1 つだけ生成するようになりました ( https://code.google.com/p/android/issues/detail?id=212591 )。

VERSION CODEただし、コードで使用する(およびを使用して出力ファイル名を変更するVERSION NAME):

android.applicationVariants.all { variant ->
    variant.outputs.each { output ->
        def padVersionCode = variant.versionCode.toString();
        padVersionCode = padVersionCode.padLeft(5, '0')
        def newApkName = "${output.baseName}_${padVersionCode}-${variant.versionName}"

        if (!output.zipAlign)
            newApkName = newApkName + "_unaligned"

        newApkName = newApkName + ".apk"
        output.outputFile = new File(output.outputFile.parent, newApkName)
    }
}

出力ファイル名に「_unaligned」が追加されているのでoutput.zipAlignfalse.

出力ファイルは本当に整列されていますか?

編集 (20161013)

終了0421に感謝し、ビルドツールを使用してapkを確認することをお勧めします:

zipalign -c -v 4 パス/ファイル名

これで、APK が正しく生成され、 zipalignコマンドが動作するようになりました。

検証成功

4

2 に答える 2

7

このフォーラムによると: https://code.google.com/p/android/issues/detail?id=212591

「こんにちは、アラインされていない apk を生成しなくなりました。速度向上の一環として、アライン済みの apk を生成します。したがって、2 つではなく、最後の 1 つを取得するだけです。

@yair.kikielka ありがとう」

于 2016-09-21T09:17:56.473 に答える
4

返信編集 (20160922):

出力ファイルは本当に整列されていますか?

はい !を使用して確認できます

zipalign -c -v 4 パス/ファイル名

gradle version >=2.2 で生成された apk ファイルに対してこのコマンドを実行すると、「Verification succesful」というメッセージが表示されます。つまり、すでに整列しています。

于 2016-10-12T16:45:27.137 に答える