[ 
https://issues.apache.org/jira/browse/CB-8976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15403892#comment-15403892
 ] 

Thiago Flessak commented on CB-8976:
------------------------------------

I understand this change, but I think it's not a minor update (as it was 
released in 5.2.0) because it will break if you already have an App published.
The old versioning model always appended a 0 at the end, making the version 10x 
greater.
After 5.2.0 a non-crosswalk apk will be 10x lower!

As mentioned, this can be solved using a custom hook.
Following is the after_prepare hook I use for android platform (based on 
Rhett's). Maybe this could help someone else.

{code:javascript}
var path = require('path'),
    fs = require('fs');

module.exports = function(context) {
    var et = context.requireCordovaModule('elementtree'),
        manifestPath = path.join(context.opts.projectRoot, 'platforms', 
'android', 'AndroidManifest.xml'),
        manifestContents = fs.readFileSync(manifestPath, { encoding: 'utf8' }),
        manifest = et.parse(manifestContents),
        versionCode = manifest.getroot().get('android:versionCode') + '',
        buildExtrasPath = path.join(context.opts.projectRoot, 'platforms', 
'android', 'build-extras.gradle');

    if 
(context.opts.cordova.plugins.indexOf('cordova-plugin-crosswalk-webview') === 
-1) {
        versionCode += '9';
    }
    fs.writeFileSync(buildExtrasPath, "ext.cdvVersionCode=" + versionCode, { 
encoding: 'utf8' });
};
{code}

> platforms/android/build.gradle modifies android versionCode
> -----------------------------------------------------------
>
>                 Key: CB-8976
>                 URL: https://issues.apache.org/jira/browse/CB-8976
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: Android
>         Environment: Android
>            Reporter: zack dykes
>            Assignee: Joe Bowser
>            Priority: Minor
>
> cordova 5.0.0
> platforms/android/build.gradle modifies android versionCode at ln 178
> as I understand it max size for versionCode is (2^31)-1 
> http://stackoverflow.com/a/24246191/126600
> in my config.xml: 
> {code}
> android-versionCode="1385039613"
> {code}
> when I run {{cordova build android}}, I get:
> {code}
> FAILURE: Build failed with an exception.
> * Where:
> Build file 
> '/Users/zackd/dev/code/cordova/cordova-ansr-fat-client/ondeviceresearch/platforms/android/build.gradle'
>  line: 178
> * What went wrong:
> A problem occurred evaluating root project 'android'.
> > For input string: "13850396130"
> {code}
> and build.gradle, ln 178
> {code}
> versionCode cdvVersionCode ?: Integer.parseInt("" + 
> privateHelpers.extractIntFromManifest("versionCode") + "0")
> {code}
> looks like this is appending "0" to my versionCode, producing 13850396130 
> which is larger than max size for android versionCode
> if I mod ln 178 as follows, build succeeds
> {code}
> versionCode cdvVersionCode ?: Integer.parseInt("" + 
> privateHelpers.extractIntFromManifest("versionCode"))
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to