Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
463 views
in Technique[技术] by (71.8m points)

macos - Truncated Android SDK package paths from sdkmanager CLI

./sdkmanager --list > tmp.txt gives me a .txt file like this:

Installed packages:
  Path  | Version | Description              | Location
  ------- | ------- | -------                  | ------- 
  tools | 25.2.3  | Android SDK Tools 25.2.3 | tools/  

Available Packages:
  Path                              | Version      | Description                      
  -------                           | -------      | -------                          
  add-ons;addon-g..._apis-google-15 | 3            | Google APIs                      
  add-ons;addon-g..._apis-google-16 | 4            | Google APIs                      
  add-ons;addon-g..._apis-google-17 | 4            | Google APIs                      
  add-ons;addon-g..._apis-google-18 | 4            | Google APIs                      
  add-ons;addon-g..._apis-google-19 | 20           | Google APIs                      
  add-ons;addon-g..._apis-google-21 | 1            | Google APIs                      
  add-ons;addon-g..._apis-google-22 | 1            | Google APIs                      
  add-ons;addon-g..._apis-google-23 | 1            | Google APIs                      
  add-ons;addon-g..._apis-google-24 | 1            | Google APIs                      
  add-ons;addon-g...e_gdk-google-19 | 11           | Glass Development Kit Preview    
  build-tools;19.1.0                | 19.1.0       | Android SDK Build-Tools 19.1
Kit Preview    
  build-tools;19.1.0                | 19.1.0       | Android SDK Build-Tools 19.1

I want to install from some of these paths using ./sdkmanager --install <path>, but I can't, because the paths are truncated. Note I am using the standard Terminal app on macOS, if that matters.

How can I get the full paths to these packages?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

This is a known issue. On Jan 19, 2017 a Googler responded with:

Thank you for suggesting this enhancement. We value the feedback from our community and hope to review your suggestion in an upcoming sprint.

Updated answer (sdkmanager >= 26.0.1)

As per the comment from @albodelu, this can now be done via:

sdkmanager --list --verbose

Which on my machine gives the following:

Info: Parsing /home/pete/apps/android-sdk/build-tools/23.0.2/package.xml
Info: Parsing /home/pete/apps/android-sdk/build-tools/23.0.3/package.xml
Info: Parsing /home/pete/apps/android-sdk/build-tools/24.0.0/package.xml

...

Installed packages:
--------------------------------------
build-tools;23.0.2
    Description:        Android SDK Build-Tools 23.0.2
    Version:            23.0.2
    Installed Location: /home/pete/apps/android-sdk/build-tools/23.0.2

build-tools;23.0.3
    Description:        Android SDK Build-Tools 23.0.3
    Version:            23.0.3
    Installed Location: /home/pete/apps/android-sdk/build-tools/23.0.3

...

Available Packages:
--------------------------------------
add-ons;addon-google_apis-google-15
    Description:        Google APIs
    Version:            3

build-tools;19.1.0
    Description:        Android SDK Build-Tools 19.1
    Version:            19.1.0

...

extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0
    Description:        Solver for ConstraintLayout 1.0.0
    Version:            1

...

done

If that is too verbose, then you could do something like the following:

sdkmanager --list --verbose | grep -vP "^Info:|^s|^$|^done$"

Which uses perl-compatible regular expressions (-P) and a grep inverse matches (-v) to remove all lines starting with Info:, starting with whitespace (^s), empty lines (^$), and lines which only include the word done:

Installed packages:
--------------------------------------
build-tools;23.0.2
build-tools;23.0.3
build-tools;24.0.0
build-tools;25.0.2
emulator
extras;android;m2repository
extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta4
extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.1
extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2
extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta4
extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1
extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2
patcher;v4
platform-tools
platforms;android-22
platforms;android-23
platforms;android-24
platforms;android-25
sources;android-24
system-images;android-10;default;x86
system-images;android-25;google_apis;x86_64
tools
Available Packages:
--------------------------------------
add-ons;addon-google_apis-google-15
add-ons;addon-google_apis-google-16
add-ons;addon-google_apis-google-17
add-ons;addon-google_apis-google-18
add-ons;addon-google_apis-google-19
add-ons;addon-google_apis-google-21
add-ons;addon-google_apis-google-22
add-ons;addon-google_apis-google-23
add-ons;addon-google_apis-google-24
add-ons;addon-google_gdk-google-19
build-tools;19.1.0
build-tools;20.0.0
build-tools;21.1.2
build-tools;22.0.1
build-tools;23.0.1
build-tools;23.0.2
build-tools;23.0.3
build-tools;24.0.0
build-tools;24.0.1
build-tools;24.0.2
build-tools;24.0.3
build-tools;25.0.0
build-tools;25.0.1
build-tools;25.0.2
build-tools;25.0.3
cmake;3.6.3155560
docs
emulator
extras;android;gapid;1
extras;android;gapid;3
extras;android;m2repository
extras;google;auto
extras;google;google_play_services
extras;google;instantapps
extras;google;m2repository
extras;google;market_apk_expansion
extras;google;market_licensing
extras;google;play_billing
extras;google;simulators
extras;google;webdriver
extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0
extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha2
extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha3
extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha4
extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha5
extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha6
extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha7
extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha8
extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha9
extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta1
extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta2
extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta3
extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta4
extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta5
extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.1
extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2
extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0
extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha2
extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha3
extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha4
extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha5
extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha6
extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha7
extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha8
extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha9
extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta1
extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta2
extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta3
extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta4
extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta5
extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1
extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2
lldb;2.0
lldb;2.1
lldb;2.2
lldb;2.3
ndk-bundle
patcher;v4
platform-tools
platforms;android-10
platforms;android-11
platforms;android-12
platforms;android-13
platforms;android-14
platforms;android-15
platforms;android-16
platforms;android-17
platforms;android-18
platforms;android-19
platforms;android-20
platforms;android-21
platforms;android-22
platforms;android-23
platforms;android-24
platforms;android-25
platforms;android-7
platforms;android-8
platforms;android-9
sources;android-15
sources;android-16
sources;android-17
sources;android-18
sources;android-19
sources;android-20
sources;android-21
sources;android-22
sources;android-23
sources;android-24
sources;android-25
system-images;android-10;default;armeabi-v7a
system-images;android-10;default;x86
system-images;android-10;google_apis;armeabi-v7a
system-images;android-10;google_apis;x86
system-images;android-14;default;armeabi-v7a
system-images;android-15;default;armeabi-v7a
system-images;android-15;default;mips
system-images;android-15;default;x86
system-images;android-15;google_apis;armeabi-v7a
system-images;android-15;google_apis;x86
system-images;android-16;default;armeabi-v7a
system-images;android-16;default;mips
system-images;android-16;default;x86
system-images;android-16;google_apis;armeabi-v7a
system-images;android-16;google_apis;x86
system-images;android-17;default;armeabi-v7a
system-images;android-17;default;mips
system-images;android-17;default;x86
system-images;android-17;google_apis;armeabi-v7a
system-images;android-17;google_apis;x86
system-images;android-18;default;armeabi-v7a
system-images;android-18;default;x86
system-images;android-18;google_apis;armeabi-v7a
system-images;android-18;google_apis;x86
system-images;android-19;default;armeabi-v7a
system-images;android-19;default;x86
system-images;android-19;google_apis;armeabi-v7a
system-images;android-19;google_apis;x86
system-images;android-21;android-tv;armeabi-v7a
system-images;android-21;android-tv;x86
system-images;android-21;default;armeabi-v7a
system-images;android-21;default;x86
system-images;android-21;default;x86_64
system-images;android-21;google_apis;armeabi-v7a
system-images;android-21;google_apis;x86
system-images;android-21;google_apis;x86_64
system-images;android-22;android-tv;armeabi-v7a
system-images;android-22;android-tv;x86
system-images;android-22;default;armeabi-v7a
system-images;android-22;default;x86
system-images;android-22;default;x86_64
system-images;android-22;google_apis;armeabi-v7a
system-images;android-22;google_apis;x86
system-images;android-22;google_apis;x86_64
system-images;android-23;android-tv;armeabi-v7a
system-images;android-23;android-tv;x86
system-images;android-23;android-wear;armeabi-v7a
system-images;android-23;android-wear;x86
system-images;android-23;default;x86
system-images;android-23;default;x86_64
system-images;android-23;google_apis;armeabi-v7a
system-images;android-23;google_apis;x86
system-images;android-23;google_apis;x86_64
system-images;android-24;android-tv;x86
system-images;android-24;default;arm64-v8a
system-images;android-24;default;armeabi-v7a
system-images;android-24;default;x86
system-images;android-24;default;x86_64
system-images;android-24;google_apis;arm64-v8a
system-images;android-24;google_apis;armeabi-v7a
system-images;android-24;google_apis;x86
system-images;android-24;google_apis;x86_64
system-images;android-24;google_apis_playstore;x86
system-images;android-25;android-tv;x86
system-images;android-25;android-wear;armeabi-v7a
system-images;android-25;android-wear;x86
system-images;android-25;google_apis;arm64-v8a
system-images;android-25;google_apis;armeabi-v7a
system-images;android-25;google_apis;x86
system-images;android-25;google_apis;x86_64

Old answer

In the mean time, another user figured out an ugly hack to get a list of full package names:

I used --list --verbose and it listed that it was searching some xml files in ~/.android/

So... this (ugly) *nix command prints out the (full?) list of the paths... (for anyone else who stumbles upon this thread before they get a sensible fix to this issue...)

grep -Riwo -e "path.*>" ~/.android | awk -F'path="' -F'"' {'print $2'} | sort | uniq

For reference, that gives the following output for me (including a bit of junk, but I don't care because at least I can see package names now:

/>
add-ons;addon-google_apis-google-10
add-ons;addon-google_apis-google-11
add-ons;addon-google_apis-google-12
add-ons;addon-google_apis-google-13
add-ons;addon-google_apis-google-14
add-ons;addon-google_apis-google-15
add-ons;addon-google_apis-google-16
add-ons;addon-google_apis-google-17
add-ons;addon-google_apis-google-18
add-ons;addon-google_apis-google-19
add-ons;addon-google_apis-google-21
add-ons;addon-google_apis-google-2

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...