在cordova config.xml中版本号上的gradle抛出错误

sma*_*ira 3 android gradle cordova ionic cordova-cli

my ionic/cordova项目的config.xml文件具有以下设置

android-versionCode ="201504231751"ios-CFBundleVersion ="201504231752"

当我尝试使用"cordova build android"构建for android时,gradle会抛出一个错误说:

FAILURE:构建因异常而失败.*其中:脚本'E:\ Workspaces\xxx\xxx\platforms\android\CordovaLib\cordova.gradle'行:128*出了什么问题:评估根项目'android'时出现问题.

对于输入字符串:"201504231750"*尝试:使用--stacktrace选项运行以获取堆栈跟踪.使用--info或--debug选项运行以获取更多日志输出.

\ CordovaLib\cordova.gradle上的第128行是ParseInt.我的假设是字符串不能转换为整数,因此问题.

当我将字符串更改为一个简单的整数时,它可以工作.

我需要版本作为时间戳.我该如何克服这个错误?

我在Windows 7机器上.奇怪的是,在mac机器上为android构建了相同的代码库.

谢谢你

uni*_*dle 5

我遇到了这个问题并用一个让我有点不舒服的黑客"解决"了它,但是哪个有效.我注意到错误消息中的字符串附加了一个零(例如,我将versionCode设置为2015073001,但错误消息包含2015073001 0).

老实说,我不知道这段代码在做什么(甚至是什么语言),但是修改提供的输入对我来说似乎有点奇怪.我修改了从平台/ android/build.gradle的第177行开始的代码:

    defaultConfig {
        versionCode cdvVersionCode ?: Integer.parseInt("" + privateHelpers.extractIntFromManifest("versionCode") + "0")
        if (cdvMinSdkVersion != null) {
            minSdkVersion cdvMinSdkVersion
        }
    }
Run Code Online (Sandbox Code Playgroud)

    defaultConfig {
        versionCode cdvVersionCode ?: Integer.parseInt("" + privateHelpers.extractIntFromManifest("versionCode"))
        if (cdvMinSdkVersion != null) {
            minSdkVersion cdvMinSdkVersion
        }
    }
Run Code Online (Sandbox Code Playgroud)