我正在尝试使用Gradle设置应用程序的名称。请查看以下build.gradle片段:
android {
...
defaultConfig {
...
versionCode getVersionCode()
versionName getVersionName()
...
}
...
}
...
int getVersionCode() {
return 1
}
def getVersionName() {
return "1.0"
}
Android Studio说
'versionCode' cannot be applied to 'java.lang.Integer'
'versionName' cannot be applied to 'java.lang.String'
当我在设备上安装该应用程序时,它根本没有versionCode和versionName。
这个问题对我来说很明显,但我不知道如何解决。
请指教。
最佳答案
编辑过
为了动态定义您的应用程序版本,请使用def指定自定义方法并调用它,如下所示:
def computeVersionName() {
return "2.0"
}
android {
compileSdkVersion 19
buildToolsVersion "19.0.0"
defaultConfig {
versionCode 12
versionName computeVersionName()
minSdkVersion 16
targetSdkVersion 16
}
}
有关更多信息,请参见here。
确保不要使用可能与给定范围中的现有getter冲突的函数名称。例如,调用
defaultConfig { ... }
的getVersionName()
将自动使用getter defaultConfig.getVersionName()
而不是自定义方法。