这就是我所做的:
我创建了另一个名为 dynamic_features.gradle 的 gradle 文件。这是它的样子:
if (hasProperty('is_release_build')) {
android {
buildTypes {
debug {
buildConfigField 'boolean', 'HAS_DYNAMIC_FEATURES', 'false'
}
qa {
buildConfigField 'boolean', 'HAS_DYNAMIC_FEATURES', 'false'
}
release {
buildConfigField 'boolean', 'HAS_DYNAMIC_FEATURES', 'false'
}
staging {
buildConfigField 'boolean', 'HAS_DYNAMIC_FEATURES', 'false'
}
debugDaily {
buildConfigField 'boolean', 'HAS_DYNAMIC_FEATURES', 'false'
}
local {
buildConfigField 'boolean', 'HAS_DYNAMIC_FEATURES', 'false'
}
}
}
} else {
android {
buildTypes {
debug {
buildConfigField 'boolean', 'HAS_DYNAMIC_FEATURES', 'true'
}
qa {
buildConfigField 'boolean', 'HAS_DYNAMIC_FEATURES', 'true'
}
release {
buildConfigField 'boolean', 'HAS_DYNAMIC_FEATURES', 'true'
}
staging {
buildConfigField 'boolean', 'HAS_DYNAMIC_FEATURES', 'true'
}
debugDaily {
buildConfigField 'boolean', 'HAS_DYNAMIC_FEATURES', 'true'
}
local {
buildConfigField 'boolean', 'HAS_DYNAMIC_FEATURES', 'true'
}
}
dynamicFeatures = [":<features>"]
}
}
然后,我将-Pis_release_build 添加到我的构建脚本中:./gradlew clean bundleAppRelease -Pis_release_build。
最后,我将apply from: 'dynamic_features.gradle' 添加到我的应用级别build.gradle。使用构建脚本生成的捆绑包不包含功能模块。 buildConfigField 是可选的,但如果您想检查该功能在运行时是否可用,则很有用。