Gradle未将versionCode和VersionName更新为manifest.xml文件

时间:2017-05-12 19:32:21

标签: android android-studio gradle android-gradle build.gradle

根据我们在gradle文件中使用的google文档值,如versionCode和versionName应在清单文件中更新。所以在我们的例子中,我们试图在build.gradle文件中的versionCode中附加日期和时间。但似乎gradle没有将版本代码更新为清单文件。这是正常行为吗?

Gradle文件

def date = new Date()
def formattedDate = date.format('yyMMddHHmm')
def code = formattedDate.toInteger()
android {    
  defaultConfig {
  versionCode code
  }
}

清单文件

<manifest android:hardwareAccelerated="true" android:versionCode="101" android:versionName="1.0.0" package="com.xxxx" xmlns:android="http://schemas.android.com/apk/res/android">

我们错过了什么吗?

2 个答案:

答案 0 :(得分:0)

  

警告:android:versionCode的最大可能值是MAXINT(2147483647)。但是,如果您使用此值上传应用,则您的应用无法更新。

versionCode - 一个整数值,表示相对于其他版本的应用程序代码版本。

versionName - 一个字符串值,表示应用程序代码的发布版本,因为它应该向用户显示。

您可以解决是否缩短版本代码的长度

def getDateTime() {
    DateFormat df = new SimpleDateFormat("yyMMddHH");
    return df.format(new Date()).toInteger();
}

答案 1 :(得分:0)

我通过在productFlavours中添加versionCode解决了这个问题。不确定为什么Gradle build不从defaultConfig块中选择versionCode。

def date = new Date()
def formattedDate = date.format('yyMMddHH')
def code = formattedDate.toInteger()
productFlavors {
    Release {
        minSdkVersion 23
        targetSdkVersion 25
        versionCode code
    }