作者:潇湘V烟雨 | 来源:互联网 | 2023-07-28 02:30
我有一个Android应用程序,在我的build.gradle文件中configuration了许多不同的产品口味
%
ignore_pre_1%
在我的应用程序代码中,我希望能够获得当前编译的风格(或构build变体)的名称。 一个解决scheme是:
productFlavors { someFlavor { buildConfig "public static final String PRODUCT_FLAVOR = "someFlavor";" } anotherFlavor { buildConfig "public static final String PRODUCT_FLAVOR = "anotherFlavor";" } }
然后在我的Android应用程序调用BuildConfig.PRODUCT_FLAVOR
。
有什么方法可以让gradle自动执行此操作吗? 或者是有一些其他的API我可以用来获取产品风味名称?
编辑:现在自动从插件的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_
。
最后, BUILD_TYPE
包含使用的构buildtypes的名称。
如果你有一个味道维度,那么你只有FLAVOR
常量。
这是现在唯一的方法。
你可以做的一件事是自动化。 所以你可以做这样的事情:
android { productFlavors.whenObjectAdded { flavor -> flavor.buildConfig "public static final String PRODUCT_FLAVOR = "${flavor.name}";" } // your normal config here. }
这样你就不必手动为每种口味做。
接受的解决scheme是真棒。 对于某些情况,备用可能是有用的。
你可以添加一个configuration文件,说'Appconfig.java'到你的productFlavor特定的源文件夹,例如src//java//Appconfig.java
; 您可以在应用程序中使用Appconfig.PRODUCT_FLAVOR
。 编译器会保持你的诚实,并确保你添加这个所有的味道。
就像我说的,在这个特殊情况下,接受的解决scheme可能会更好,因为您甚至不需要为新产品Flavors添加任何东西,但是这种方法可能对其他情况有用。
以上就是android开发分享在android应用程序中获取产品风味或构build变体相关内容,想了解更多android开发(异常处理)及android游戏开发关注(编程笔记)。