【问题标题】:Android Studio 2.2 update: aligned APK (zipAlign) not generated using the new Gradle Plugin 2.2.0Android Studio 2.2 更新:未使用新的 Gradle 插件 2.2.0 生成对齐的 APK (zipAlign)
【发布时间】:2017-01-28 05:05:26
【问题描述】:

在将 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'
        }
}  

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

我“解决”了转回

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)
    }
}

我将“_unaligned”附加到输出文件名,所以我认为output.zipAlignfalse

那么输出文件真的对齐了吗?

编辑 (20161013)

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

zipalign -c -v 4 路径/文件名

现在我现在已经正确生成了 APK 并且 zipalign 命令 syays:

验证成功

【问题讨论】:

  • 我验证了 output.zipalign 始终为空,因此满足 if 条件并且生成的 apk 名称包含后缀“_unaligned.apk”(根据 OP 中的代码)。但是生成的文件是 zipaligned。

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


【解决方案1】:

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

“嗨,我们不再生成未对齐的 apk。作为提高速度的一部分,我们生成了已经对齐的 apk。因此,您只需获得最后一个,而不是两个。

@yair.kikielka 谢谢。”

【讨论】:

    【解决方案2】:

    回复编辑(20160922):

    那么输出文件真的对齐了吗?

    是的!您可以使用

    进行验证

    zipalign -c -v 4 路径/文件名

    当你对 gradle version >=2.2 生成的 apk 文件运行这个命令时,你会得到 "Verification succesful" 。这意味着已经对齐。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-10
      • 1970-01-01
      • 2020-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-05
      相关资源
      最近更新 更多