Android Studio 2.2更新:使用新的Gradle Plugin 2.2.0生成的对齐APK(zipAlign)

时间:2016-09-20 10:06:26

标签: android gradle gradle-plugin android-studio-2.2 zipalign

将Android Studio更新到2.2版后,我还获得了Gradle插件的更新(它是2.1.3):

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

我看到未对齐的变体APK文件,但不再生成其他变体。我尝试启用zip对齐:

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

但没有任何改变。有什么想法吗?

我"解决了#34;回到

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

项目级别build.gradle

编辑(20160922):

感谢Fayder Florez 的回复。没错,构建环境现在只生成一个apk(https://code.google.com/p/android/issues/detail?id=212591)。

但是使用代码(使用VERSION CODEVERSION 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)
    }
}

我得到了#34; _unaligned"附加到输出文件名,因此我认为output.zipAlignfalse

输出文件是否真的对齐了?

编辑(20161013)

感谢ending0421 ,并建议使用构建工具检查apk:

  

zipalign -c -v 4 path / fileName

现在我现在已正确生成APK 和zipalign命令系统:

  

验证成功

2 个答案:

答案 0 :(得分:7)

根据这个论坛:https://code.google.com/p/android/issues/detail?id=212591

"嗨,我们不再生成未对齐的apks。作为速度改进的一部分,我们生成了已经对齐的apk。所以,而不是两个,你只是得到最后一个。

@ yair.kikielka谢谢。"

答案 1 :(得分:4)

回复编辑(20160922):

输出文件是否真的对齐了?

是的!您可以使用

进行验证
  

zipalign -c -v 4 path / fileName

当您对由gradle版本> = 2.2生成的apk文件运行此命令时,您将获得"验证成功" 。这意味着已经对齐了。