You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "Joe Bowser (JIRA)" <ji...@apache.org> on 2017/01/17 17:17:26 UTC

[jira] [Commented] (CB-12345) Android-Target is not being overrided

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

Joe Bowser commented on CB-12345:
---------------------------------

We intentionally grab the target from project.properties to allow this to be backward compatible with Ant.  The project.properties should be changed, not the gradle file.

> Android-Target is not being overrided
> -------------------------------------
>
>                 Key: CB-12345
>                 URL: https://issues.apache.org/jira/browse/CB-12345
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: Android
>    Affects Versions: 5.4.1
>         Environment: cordova-android 6.4.0
>            Reporter: Derek Hang
>              Labels: android, android6.0, cordova, cordova-android-osx
>
> As specified in https://cordova.apache.org/docs/en/latest/config_ref/
> android-targetSdkVersion(integer) can be used to configure the target SDK.  This means that after you generate the project, it will build with this targetSDK. 
> However, this is not the case. 
> As a result, the ability to override the gradle files via either
> gradle.properties
> cdvCompileSdkVersion=23
> cdvBuildToolsVersion="23.0.3"
> build-extras.gradle
> ext.cdvCompileSdkVersion = 23
> ext.cdvBuildToolsVersion = "23.0.3"
> does not work.  It will always try to use the hard coded target which is android-25 to build the project.  It will try to download the SDK and then build it.
> Details
> -----------------
> In the CordovaLib/project.properties it hardcodes a target target=android-25.  As a result, in CordovaLib/cordova.gradle
> String doGetProjectTarget() {
>     def props = new Properties()
>     file('project.properties').withReader { reader ->
>         props.load(reader)
>     }
>     return doEnsureValueExists('project.properties', props, 'target')
> }
> will always return android-25.  
> What this means is that in the CordovaLib/build.gradle 
> ext {
>     apply from: 'cordova.gradle'
>     cdvCompileSdkVersion = privateHelpers.getProjectTarget()
>     cdvBuildToolsVersion = privateHelpers.findLatestInstalledBuildTools()
> }
> The target will always be 25.
> You can see this if you add the gradle task to the file
> task cdvPrintPropsSubTest << {
>     println('buildsdk=' + privateHelpers.findLatestInstalledBuildTools())
>     println('target=' + privateHelpers.getProjectTarget())
>     println('cdvCompileSdkVersion=' + cdvCompileSdkVersion)
>     println('cdvBuildToolsVersion=' + cdvBuildToolsVersion)
>     println('cdvVersionCode=' + cdvVersionCode)
>     println('cdvMinSdkVersion=' + cdvMinSdkVersion)
>     println('cdvBuildMultipleApks=' + cdvBuildMultipleApks)
>     println('cdvReleaseSigningPropertiesFile=' + cdvReleaseSigningPropertiesFile)
>     println('cdvDebugSigningPropertiesFile=' + cdvDebugSigningPropertiesFile)
>     println('cdvBuildArch=' + cdvBuildArch)
>     println('computedVersionCode=' + android.defaultConfig.versionCode)
>     android.productFlavors.each { flavor ->
>         println('computed' + flavor.name.capitalize() + 'VersionCode=' + flavor.versionCode)
>     }
> }
> The workaround is to modify the generated files, but this defeats the purpose of being able to regenerate the code without having to worry about custom modifications to it.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@cordova.apache.org
For additional commands, e-mail: issues-help@cordova.apache.org