Có cách nào để thêm thuộc tính tùy chỉnh vào productFlavor hoặc buildType trong plugin android cho gradle không? Tôi muốn có tính linh hoạt bổ sung như vậy trong cấu hình của buildVariants, để tôi có thể kiểm tra thuộc tính tùy chỉnh của mình khi chỉ định các tác vụ cho buildVariants.Plugin Android Gradle - thêm thuộc tính hương vị tùy chỉnh?
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
}
}
vì vậy đây bạn có thể thấy tôi đã thêm thuộc tính tùy chỉnh "useWidevineAppDrmLib" để xây dựng hương vị. Nó sẽ được tốt đẹp để xem các thuộc tính như nhau trong buildVariant.mergedFlavor, vì vậy mà tôi có thể kiểm tra giá trị thuộc tính và không xây dựng nhiệm vụ bổ sung, chẳng hạn như gói thêm file .so khi thuộc tính được thiết lập là true:
android.applicationVariants.each { variant -> if(variant.mergedFlavor.useWidevineAppDrmLib) { ... // add copy .so task } }
có thể có cách để làm điều đó nhưng tôi chưa tìm ra ... kiểm tra tên biến thể xây dựng cho chuỗi con (tên hương vị) hoạt động đối với tôi, nhưng có vẻ bẩn.
Lý tưởng nhất là tôi muốn có một bản đồ thuộc tính tùy chỉnh của các loại khác nhau cho buildType và productFlavor.
Xav, cảm ơn rất nhiều vì đã trả lời nhanh! – blackdigger
tôi cố gắng làm điều đó theo cách sau: define lớp mở rộng trên phần "android" - nếu không nó mang lại cho biên dịch lỗi: lớp BooleanExtension { giá trị Boolean BooleanExtension (giá trị Boolean) { \t this.value = giá trị } công cộng khoảng trống setValue (giá trị Boolean) { \t this.value = giá trị } công Boolean getValue() { \t trở lại giá trị }} sau đó viết: widevineAppDrm { ... useWidevineAppDrmLib.v alue true ... } .... và: nếu (variant.productFlavors.get (0) .useWidevineAppDrmLib.value) {...} – blackdigger
và một điều nữa, để thêm phần mở rộng hương tôi phải làm: productFlavors.whenObjectAdded {hương vị -> flavor.extensions.create ("useWidevineAppDrmLib", BooleanExtension, false) } – blackdigger