Gradle3.0 修改APK生成路径和文件名
Gradle 插件更新到了3.0, 但是当我们更新到3.0的时候, 很多dsl 无法使用了, 其中就有一个本人比较喜欢的api改变了, 就是修改打包生成的APK文件名.
在未更新之前:
applicationVariants.all { variant -> variant.outputs.each { output -> output.outputFile = new File('XXXXXX/XXXXX/release.apk') } }
更新3.0之后, 上面的方法就会报错.
3.0可以使用以下方法修改:
applicationVariants.all { variant -> variant.getPackageApplication().outputDirectory = new File("XXXXXX/XXXXX/") variant.getPackageApplication().outputScope.apkDatas.forEach { apkData -> apkData.outputFileName = "release.apk"
}
}
具体的API更改说明可以查看:
https://developer.android.google.cn/studio/build/gradle-plugin-3-0-0-migration.html#variant_api
据说是为了加快编译速度.
同时
更新到Gradle 3.0之后,如你有 productFlavors, 必须定义 flavorDimensions, 生成的apk name会根据productFlavors.name命名.
android{
... flavorDimensions "type" //这个是必须的
... productFlavors{
dev{
dimension "type" //并且必须使用这个dimension
}
pre{
dimension "type" //并且必须使用这个dimension
}
apk{
dimension "type" //并且必须使用这个dimension
}
}
}