【发布时间】:2021-08-17 10:52:57
【问题描述】:
我正在尝试从属性文件中读取 versionCode 和 versionName(我似乎可以这样做),并在声明 Android versionCode 和 versionName 时使用这些值(这似乎不起作用)。
build.properties
versionCode=21001003
versionName=21.1.3-SNAPSHOT
build.gradle(工作)
// Read from properties file into Extra properties
def props = new Properties()
file("build.properties").withInputStream { props.load(it) }
props.entrySet().each { it -> project.ext.setProperty((String) it.key, it.value) }
println 'project.versionCode=' + project.versionCode
println 'project.versionName=' + project.versionName
println 'project.ext.versionCode=' + project.ext.versionCode
println 'project.ext.versionName=' + project.ext.versionName
android {
compileSdkVersion 30
buildToolsVersion "30.0.2"
defaultConfig {
versionCode 1 //versionCode
versionName "versionName"
}
...
}
build.gradle(失败)
// Read from properties file into Extra properties
def props = new Properties()
file("build.properties").withInputStream { props.load(it) }
props.entrySet().each { it -> project.ext.setProperty((String) it.key, it.value) }
println 'project.versionCode=' + project.versionCode
println 'project.versionName=' + project.versionName
println 'project.ext.versionCode=' + project.ext.versionCode
println 'project.ext.versionName=' + project.ext.versionName
android {
compileSdkVersion 30
buildToolsVersion "30.0.2"
defaultConfig {
versionCode project.versionCode
versionName project.versionName
}
...
}
失败:
2021-08-17T20:45:10.644+1000 [QUIET] [system.out] key=versionName value=21.1.3-SNAPSHOT
2021-08-17T20:45:10.645+1000 [QUIET] [system.out] key=versionCode value=21001003
2021-08-17T20:45:10.645+1000 [QUIET] [system.out] project.versionCode=21001003
2021-08-17T20:45:10.645+1000 [QUIET] [system.out] project.versionName=21.1.3-SNAPSHOT
2021-08-17T20:45:10.645+1000 [QUIET] [system.out] project.ext.versionCode=21001003
2021-08-17T20:45:10.646+1000 [QUIET] [system.out] project.ext.versionName=21.1.3-SNAPSHOT
...
2021-08-17T20:45:10.690+1000 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
2021-08-17T20:45:10.690+1000 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] FAILURE: Build failed with an exception.
2021-08-17T20:45:10.690+1000 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
2021-08-17T20:45:10.690+1000 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * Where:
2021-08-17T20:45:10.690+1000 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Build file 'C:\Source\wylas\wirelesstiming\android-apps\timekeeper\build.gradle' line: 21
2021-08-17T20:45:10.690+1000 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
2021-08-17T20:45:10.690+1000 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * What went wrong:
2021-08-17T20:45:10.690+1000 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] A problem occurred evaluating project ':timekeeper'.
2021-08-17T20:45:10.690+1000 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] > No signature of method: build_59ns6w30vg653ob1t6cfszcra.android() is applicable for argument types: (build_59ns6w30vg653ob1t6cfszcra$_run_closure3) values: [build_59ns6w30vg653ob1t6cfszcra$_run_closure3@3eb0b9d1]
2021-08-17T20:45:10.690+1000 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
2021-08-17T20:45:10.690+1000 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * Try:
2021-08-17T20:45:10.690+1000 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Run with --stacktrace option to get the stack trace. Run with --scan to get full insights.
2021-08-17T20:45:10.691+1000 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
2021-08-17T20:45:10.691+1000 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * Get more help at https://help.gradle.org
2021-08-17T20:45:10.691+1000 [ERROR] [org.gradle.internal.buildevents.BuildResultLogger]
2021-08-17T20:45:10.691+1000 [ERROR] [org.gradle.internal.buildevents.BuildResultLogger] BUILD FAILED in 1s
这个答案https://stackoverflow.com/a/29597784/493682 表明我正在尝试做的事情应该有效。
如何配置 versionCode 和 versionName 属性,以便它们从 project.ext.versionCode 和 project 中获取值。 ext.versionName 分别。
为什么我会失败,这个错误是什么意思?
【问题讨论】:
标签: android gradle build.gradle