如何在Gradle中访问ext变量

Eri*_*lle 6 android gradle crashlytics build.gradle

我试图获取在第3方库(结构)中定义的变量,以根据是否启用Crashlytics来执行条件。

ext.enableCrashlytics = true
Run Code Online (Sandbox Code Playgroud)

http://support.crashlytics.com/knowledgebase/articles/202938-gradle 可以在buildTypes或flavor中配置变量,但是在build.gradle的其他地方找不到访问该变量的方法。

我尝试了几件事,没有任何运气。

allprojects.getProperties().get("enableCrashlytics")
project.enableCrashlytics
project.ext.enableCrashlytics
allProjects.ext.enableCrashlytics
Run Code Online (Sandbox Code Playgroud)

有人尝试过吗?我正在尝试执行的上下文是根据是否启用fabric.properties文件来编写文件。

android.applicationVariants.all { variant ->
  ...
  //create fabric.properties
  ...
}
Run Code Online (Sandbox Code Playgroud)

Gab*_*tti 5

您可以在顶层定义一个属性build.gradle

ext {
  myproperty = 12
}
Run Code Online (Sandbox Code Playgroud)

或数组:

ext {

    myarray = [
            name0     : "xx",
            name1     : "xx"
   ]
}
Run Code Online (Sandbox Code Playgroud)

然后,在每个模块中,您都可以使用somenthig:

rootProject.ext.myproperty
rootProject.ext.myarray.name0
Run Code Online (Sandbox Code Playgroud)