在gradle文件中声明/使用变量 - 在java中使用它

时间:2016-01-27 18:44:30

标签: android android-studio android-gradle

我的gradle文件中包含以下内容:

String packageName = com.test.free

我想在我的java类中使用这个String变量packageName。我使用Android Studio 1.5.1。

有可能吗?如何将此字符串从gradle传输到java?

我在这里已经阅读了类似的问题,但没有一个解决方案有效。

2 个答案:

答案 0 :(得分:2)

创建一个gradle任务,将packageName写入java文件,如:

的build.gradle:

task generateGradleValuesJava {
    def java = 
      'public class GradleValues {' +
      '  public static String packageName = "' + project.packageName+ '";' +
      '  }' +
      '}'
    def javaFile = new File('GradleValues.java')
    javaFile.write(java)
}

compileJava.dependsOn generateGradleValuesJava

将此文件编译到jar中并使用它:

GradleValues.packageName

答案 1 :(得分:1)

如果该值真的是您的MODULE_LICENSE("Dual BSD/GPL"); MODULE_LICENSE("GPLv2+"); MODULE_LICENSE("GPL"); MODULE_LICENSE("GPLv3+"); MODULE_LICENSE("GPLv3"); ,则applicationId已经可以使用该值。

否则,你可以add your own custom fields to BuildConfig。这些可以包括动态值:

BuildConfig.APPLICATION_ID