eJo*_*Joe 5 android gradle build.gradle android-gradle-plugin
我的项目根目录中有 local.properties 文件。
sdk.dir=C\:\\Users\\vucet\\AppData\\Local\\Android\\Sdk
versionName='7.0'
Run Code Online (Sandbox Code Playgroud)
并在 app 模块中的 build gradle 中,我试图以这种方式获取 versionName
Properties properties = new Properties()
if (project.rootProject.file('local.properties').exists()) {
properties.load(project.rootProject.file('local.properties').newDataInputStream())
}
def getVerCode = { ->
def code = project.hasProperty("versionCode") ? project.versionCode.toInteger() : 1000
return code
}
def getVerName = { ->
def name = project.hasProperty("versionName") ? project.versionName.toString() : "5.0"
return name
}
Run Code Online (Sandbox Code Playgroud)
但每次我得到 5.0 值。请任何人都可以帮助我吗?
使用 gradle 读取 local.properties 并在您的 Android 应用程序 java 代码中使用它们。
local.properties:
TOKEN="yyyyy"
SERVER_URL="https://foo.com"
构建.gradle:
Properties properties = new Properties()
if (project.rootProject.file('local.properties').canRead()) {
properties.load(project.rootProject.file("local.properties").newDataInputStream())
}
buildConfigField 'String', 'TOKEN', properties.getProperty('TOKEN', '"xxx"')
buildConfigField 'String', 'SERVER_URL', properties.getProperty('SERVER_URL', '"https://example.com/"')
Run Code Online (Sandbox Code Playgroud)
安卓java代码
@Override
public void onCreate(Bundle savedInstanceState) {
...
Log.d("TAG", "My 'token' is: " + BuildConfig.TOKEN);
Log.d("TAG", "My 'server url' is: " + BuildConfig.SERVER_URL);
}
Run Code Online (Sandbox Code Playgroud)
尝试打印 versionName 以检查到目前为止您是否没有做错任何事情:
def getVerName = { ->
println project.versionName.toString()
...
}
Run Code Online (Sandbox Code Playgroud)
或者,如果可以的话,尝试使用 gradle.properties 文件,因为您可以直接从 build.gradle 访问属性:
gradle.属性:
versionName='7.0'
Run Code Online (Sandbox Code Playgroud)
构建.gradle:
task printProps << {
println versionName
...
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6639 次 |
最近记录: |