AndroidStudio gradle 配置 productFlavors
gradle版本
distributionUrl=https://services.gradle.org/distributions/gradle-5.6.4-all.zip
主模塊配置productFlavors
app/build.gradle
android {
...
flavorDimensions 'default' // 定義必要的配置 否則會報錯 可定義多個 flavorDimensions 'default', 'app'
productFlavors {
// 如果用way3方法 該名字不能和主模塊相同 否則報錯 ERROR: Unable to resolve dependency for ':app@zkDebugUnitTest/compileClasspath':
coma {
dimension = 'default'
// 定義不同的包名
applicationId = "com.test.demo1"
manifestPlaceholders = [
KEY_AMAP_API : "xxxxxxxxxxxxxxxxxxxx",
// 定義不同的APP名稱
// APP_LABLE_FLAG : "@string/app_name",
]
// 自定義buildConfig.java中的變量供代碼中使用
buildConfigField "String", "APPID_BUGLY", '"123151554d"'
}
comb {
dimension = 'default'
applicationId = "com.test.demo2"
manifestPlaceholders = [
KEY_AMAP_API : "yyyyyyyyyyyyyyyyyyyy"
]
buildConfigField "String", "APPID_BUGLY", '"adf88sfds8fd"'
}
}
}
// way3 begin 不用方法3則不需要定義該way3包裹代碼
/*configurations {
comaDebugImplementation
comaReleaseImplementation
combDebugImplementation
combReleaseImplementation
}*/
// way3 end
dependencies {
implementation project(':upgrade') // way1 推薦使用該方法
// combImplementation project(path: ":upgrade", configuration: 'comaDebug') // way2 不用定義 configurations
// way3 begin
// comaImplementation project(path: ":upgrade", configuration: 'bbDebug')
// comaImplementation project(path: ":upgrade", configuration: 'bbRelease')
// combDebugImplementation project(path: ":upgrade", configuration: 'ccbDebug')
// combReleaseImplementation project(path: ":upgrade", configuration: 'ccRelease')
// way3 end
}
子模塊配置productFlavors
module1/build.gradle
android {
...
publishNonDefault true
flavorDimensions 'default'
productFlavors {
coma {
dimension = 'default'
buildConfigField "String", "APPID_BUGLY", '"123151554d"'
}
comb {
dimension = 'default'
buildConfigField "String", "APPID_BUGLY", '"adf88sfds8fd"'
}
}
}
參考:
http://www.luyixian.cn/news_show_349834.aspx