Android gradle 配置productFlavors 子模塊配置productFlavors


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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章