有沒有什麼辦法可以在android插件中爲gradle添加自定義屬性到productFlavor或buildType? 我希望在配置buildVariants時具有這種額外的靈活性,以便在爲buildVariants指定任務時檢查自定義屬性。Gradle Android插件 - 添加自定義風味屬性?
productFlavors {
flavorGroups "drm", "storeType"
googlePlay {
flavorGroup "storeType"
buildConfig "public static final String TARGET_STORE = \"google\";"
}
samsungApps {
flavorGroup "storeType"
buildConfig "public static final String TARGET_STORE = \"samsung\";"
}
platformDrm {
flavorGroup "drm"
}
widevineAppDrm {
flavorGroup "drm"
minSdkVersion 9
useWidevineAppDrmLib true
}
}
所以在這裏你可以看到我已經添加了自定義屬性 「useWidevineAppDrmLib」 打造的味道。 這將是很高興看到在buildVariant.mergedFlavor相同的屬性,這樣我可以檢查的屬性值,並要建造更多的任務,如包裝的附加.so文件時,該屬性設置爲true:
android.applicationVariants.each { variant -> if(variant.mergedFlavor.useWidevineAppDrmLib) { ... // add copy .so task } }
也許有一種方法可以做到這一點,但我還沒有發現... 檢查構建子字符串(味道名稱)的變體名稱適用於我,但它看起來很髒。
理想情況下,我希望爲buildType和productFlavor提供不同類型的自定義屬性的映射。
Xav,非常感謝您的快速回復! – blackdigger
我設法做到這一點通過以下方式:定義「機器人」部分上方擴展類 - 否則它給編譯錯誤: 類BooleanExtension { 布爾值 BooleanExtension(布爾值){ \t THIS.VALUE =值 } 公共無效的setValue(布爾值){ \t THIS.VALUE =值 } 公共布爾的getValue(){ \t返回值 }} 然後 寫: widevineAppDrm { ... useWidevineAppDrmLib.v alue true ... } .... and: if(variant.productFlavors.get(0).useWidevineAppDrmLib.value){...} – blackdigger
還有一兩件事,以增加風味延長我不得不這樣做: productFlavors.whenObjectAdded {味 - > flavor.extensions.create( 「useWidevineAppDrmLib」,BooleanExtension,FALSE) } – blackdigger