[英]How combine build type and flavor to get a build variant debug<Flavor>
[英]Get product flavor or build variant in an android app
我有一個Android應用程序,在我的build.gradle文件中配置了許多不同的產品風格,例如
productFlavors {
someFlavor {}
anotherFlavor {}
}
在我的應用程序代碼中,我希望能夠獲得當前編譯的flavor(或構建變體)的名稱。 一個解決方案是:
productFlavors {
someFlavor {
buildConfig "public static final String PRODUCT_FLAVOR = \"someFlavor\";"
}
anotherFlavor {
buildConfig "public static final String PRODUCT_FLAVOR = \"anotherFlavor\";"
}
}
然后在我的Android應用程序中調用BuildConfig.PRODUCT_FLAVOR
。
有什么方法可以讓我自動做到這一點嗎? 或者是否有一些其他API在android我可以用來獲取產品風味名稱?
編輯:現在從插件版本0.7開始自動完成。 BuildConfig.java
將包含
public static final String BUILD_TYPE = "debug";
public static final String FLAVOR = "f1Fa";
public static final String FLAVOR_group1 = "f1";
public static final String FLAVOR_group2 = "fa";
FLAVOR
是應用了所有風味尺寸/組的組合風味名稱。 然后每個維度都可用作FLAVOR_<group name>
。
最后, BUILD_TYPE
包含使用的構建類型的名稱。
如果您有一個風味維度,那么您只有FLAVOR
常量。
這是目前唯一的方法。
你可以做的一件事是自動化它。 所以你可以這樣做:
android { productFlavors.whenObjectAdded { flavor -> flavor.buildConfig "public static final String PRODUCT_FLAVOR = \\"${flavor.name}\\";" } // your normal config here. }
這樣您就不必為每種風味手動執行此操作。
公認的解決方案非常棒。 對於某些情況,替代方案可能有用。
你可以添加一個配置文件,比如說'appconfig.java'到你的productFlavor特定的源文件夾,即src/<productflavor>/java/<packagename>/Appconfig.java
; 然后,您可以在您的應用程序中使用Appconfig.PRODUCT_FLAVOR
。 編譯器會保持誠實,並確保為所有風格添加此功能。
就像我說的,在這種特殊情況下,接受的解決方案可能更好,因為你甚至不需要為新的productFlavors添加任何東西,但這種方法可能對其他情況有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.