我正在尝试使用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()而不是自定义方法。

10-08 16:24