关于android:仍然在这里访问Java代码中的gradle ext属性吗?

Is here anyway to access gradle ext properties in java code?

这是项目级别gradle.build文件:

1
2
3
4
5
6
7
8
9
10
11
 buildscript {
    ext {
        server_test = 'http://192.618..'
        server_main ="https://68.5..."
        another_value ="test"
    }

    ext.kotlin_version = '1.3.41'

....
....

我在我的应用程序级别gradle.build文件中使用这些值。

有没有办法也可以在我的Java Project文件中访问这些变量!


如果您试图在Java代码中显式访问gradle扩展,则答案是否定的:不可能,请参见:Android-读取类中的build.gradle属性,并查看是否可以在Gradle中声明一个变量 Java的?


在gradle(应用程序级别,而不是根级别)中使用buildConfigFields,您可以:)

1
buildConfigField"String","variable_name","variable_value"

作为一个完整的例子:

1
2
3
4
5
6
7
8
9
10
  productFlavors {

    dev {
        dimension"your_dimension_name"

buildConfigField"String","SERVER_TEST",""http://192.618..""
buildConfigField"String","SERVER_MAIN",""https://68.5...""
buildConfigField"String","ANOTHER_VALUE","test"

    }

然后,您可以使用以下命令在整个项目中访问这些变量:

1
      BuildConfig.SERVER_TEST

看看这个链接,一个更完整的答案,如果这没有帮助:

如何使用String类型生成buildConfigField