【问题标题】:Gradle is not updating versionCode and VersionName to manifest.xml fileGradle 未将 versionCode 和 VersionName 更新为 manifest.xml 文件
【发布时间】:2017-10-12 05:09:13
【问题描述】:

根据我们在 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">

我们错过了什么吗?

【问题讨论】:

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


    【解决方案1】:

    警告:android:versionCode 的最大可能值为 MAXINT (2147483647)。但是,如果您上传具有此值的应用,您的应用将永远无法更新。

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

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

    你可以解决是否剪掉版本代码的长度

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

    【讨论】:

      【解决方案2】:

      我通过在 productFlavors 中添加 versionCode 解决了这个问题。不知道为什么 Gradle 构建没有从 defaultConfig 块中选择 versionCode。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-02-07
        • 2017-12-21
        • 2021-12-31
        • 2018-04-30
        • 1970-01-01
        • 2012-03-26
        • 1970-01-01
        相关资源
        最近更新 更多