You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2017/04/06 21:16:45 UTC

[jira] [Commented] (CB-12640) listing targets with cli scripts does not work with v26 of android sdk tools

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

ASF GitHub Bot commented on CB-12640:
-------------------------------------

GitHub user filmaj opened a pull request:

    https://github.com/apache/cordova-android/pull/373

    Support for SDK Tools v26, simplified target parsing and preference for using newer `sdkmanager` and `avdmanager` commands

    Please review and test @infil00p, @dpogue, @shazron.
    
    ### Platforms affected
    
    Android
    
    ### What does this PR do?
    
    - Adds support for SDK Tools v26.
    - For android target parsing, now prioritizes using `avdmanager` over `android`. Also ensures that, when using `android`, to always use the singular form of the command (`android list target`), as the plural form got silently removed by Google.
    - For AVD parsing, now prioritizes using `avdmanager` over `android`. Also ensures that, when using `android`, to always use the singular form of the command (`android list avd`), as the plural form got silently removed by Google.
    
    ### What testing has been done on this change?
    
    Updated specs, also tested the following scenario:
    ```
    $ ./bin/create ../myproj
    $ cd ../myproj
    $ ./cordova/run --emulate
    ```
    .. on the following platforms:
    - Mac OS 10.12 with Android SDK Tools v26.
    - Windows 10 with Android SDK Tools v25.3.1.
    - Windows 10 with Android SDK Tools v26.
    
    Worked for me.
    
    ### Checklist
    - [x] Issue filed: [CB-12640](https://issues.apache.org/jira/browse/CB-12640)
    - [x] Commit message follows the format: "CB-3232: (android) Fix bug with resolving file paths", where CB-xxxx is the JIRA ID & "android" is the platform affected.
    - [x] Added automated test coverage as appropriate for this change.


You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/filmaj/cordova-android CB-12640

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/cordova-android/pull/373.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #373
    
----
commit f8e4f92970d1f262baf607210febd448278b28c6
Author: filmaj <ma...@gmail.com>
Date:   2017-04-06T20:13:38Z

    CB-12640: support for android sdk tools 26.0.1. simplified target parsing by using avdmanager instead of sdkmanager. flipped target parsing logic so that it always tries to use avdmanager to retrieve targets first, then falls back to android command if avdmanager cannot be found (and errors with ENOENT). updated tests.

commit 4995b89025b9802f1f7f5417df2e152794fd6ff5
Author: filmaj <ma...@gmail.com>
Date:   2017-04-06T20:48:58Z

    CB-12640: flipped avd parsing logic so that it always tries to use avdmanager to retrieve avds first, then falls back to android command if avdmanager cannot be found (and errors with ENOENT). updated tests - and added explicit tests to ensure to shell out to singular forms of sub-commands when executing `android`

----


> listing targets with cli scripts does not work with v26 of android sdk tools
> ----------------------------------------------------------------------------
>
>                 Key: CB-12640
>                 URL: https://issues.apache.org/jira/browse/CB-12640
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: Android
>    Affects Versions: 6.2.1
>            Reporter: Filip Maj
>            Assignee: Filip Maj
>
> Another Android SDK Tools release, another new problem! The {{android}} command is back and has completely different behaviour from SDK Tools 25.3.x. It now:
>   a) prints out a deprecation warning
>   b) does not accept {{list targets}} (must be {{list target}}) as a command
>   c) does not print out an error message telling users to use {{avdmanager}} or {{sdkmanager}}
> In 25.3.x, {{android}} would exit with a non-zero exit code and print out an error message saying the command is no longer available.
> In 25.2.x and below, {{android}} was the go-to command for all things android-related.
> The [existing code for listing targets|https://github.com/apache/cordova-android/blob/master/bin/templates/cordova/lib/android_sdk.js] currently follows this flow:
> 1. Run {{android}} to list targets. If that works, parse targets out and exit.
> 2. If {{android}} fails with a non-zero exit code and a particular error message (the one that would be output in 25.3.x version of the tools), leverage {{sdkmanager}}, parse its output for installed targets.
> [~bowserj] brought up a good point to just use {{avdmanager list target}} instead of {{sdkmanager}} - it maintains the same output format for target listing as the old {{android}} tool does, which should allow us to remove the [code we have in place to convert {{sdkmanager}} output to the old {{android}} output format|https://github.com/apache/cordova-android/blob/master/bin/templates/cordova/lib/android_sdk.js#L107]. 
> Another solid [~bowserj] piece of advice is to try to use the {{avdmanager}} tool first before falling back to {{android}}.
> I will attempt to implement both suggestions above, and add test cases leveraging output fixtures from the various Android SDK Tool versions.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

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