最近在 Android Studio 升级到 2020.3.1版本(对标IntelliJ IDEA版本),gradle 版本升级到7.0以后,发现之前的gradle自动化打包配置,已经失效,最新的配置如下,希望有帮助到大家:
android{
...
androidComponents {
// 没有abi分包的可以去掉,这里是为了区分64位和32位包
def abiVersionCodeStep = ["armeabi-v7a": 0, "arm64-v8a": 1]
onVariants(selector().all()) { variant ->
def applicationId = variant.applicationId.get() //gradle 7.0.0 中 applicationId 源码中变成了 Property<String?>, 需要调用 get()方法
variant.outputs.forEach { output ->
// 根据不同abi来设定不同的VersionCode,不需要的可以去掉
def variantOutputConfiguration = output.variantOutputConfiguration
def abiKey = variantOutputConfiguration.filters[0].identifier // 获取abi类型
def versionCodeStep = abiVersionCodeStep.get(abiKey)
if (versionCodeStep == null) {
throw new IllegalArgumentException("Can not find VersionCodeStep for ABI($abiKey)"