我在 Android Studio 中有一个包含几个模块的项目。
app
模块。使用apply plugin: 'com.android.application'
。androidLibrary
模块。使用apply plugin: 'com.android.library'
。javaLibrary
模块。使用apply plugin: 'java'
。
我想在项目 gradle.properties
文件中声明一些变量,并能够从 javaLibrary
模块中读取它们。
我已经根据this通过以下方式声明了属性文档...
mysuperhost=superhost
systemProp.mysuperhost=superhost
ORG_GRADLE_PROJECT_mysuperhost=superhost
org.gradle.project.mysuperhost=superhost
...并尝试以这种方式阅读它们但没有成功:
System.getenv("mysuperhost");
System.getProperty("mysuperhost");
我知道如何从 BuildConfig
类中读取属性,但这是应用程序模块中生成的类(使用 apply plugin: 'com.android.application'
),所以这不适用于这种特殊情况。
最佳答案
如果您的 gradle.properties 文件中有一些值,例如 mysuperhost= super 主机 然后在您的 build.gradle 文件中写入以下行(从 gradle.properties 文件中获取属性并将其添加到 BuildConfig.java 类中):
// ...
// ...
android {
// Just for example
compileSdkVersion 23
// Just for example
buildToolsVersion "23.0.2"
// ...
// ...
defaultConfig {
// Just for example
minSdkVersion 14
// Just for example
targetSdkVersion 23
// This is the main idea
buildConfigField('String', 'MY_SUPER_HOST', "\"${mysuperhost}\"")
// ...
// ...
}
// ...
// ...
}
// ...
// ...
之后构建您的项目,您可以通过 BuildConfig.MY_SUPER_HOST 使用您的值
关于java - 如何从 java 模块中的 gradle.properties 中读取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35470941/