根据我们在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">
我们错过了什么吗?
答案 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
}