Abgeschnitten Android SDK package-Pfade von sdkmanager CLI
./sdkmanager --list > tmp.txt
gibt mir eine .txt-Datei wie folgt:
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
Ich installieren möchte von einigen dieser Wege mit ./sdkmanager --install <path>
, aber ich kann nicht, weil die Pfade abgeschnitten werden. Hinweis: ich bin mit dem standard-Terminal-app unter macOS, wenn das zählt.
Wie bekomme ich die vollständigen Pfade zu diesen Paketen?
- Ich löste mein root problem mithilfe der
android
Programm, das enthalten ist in der macOS Android SDK CLI-download unter developer.android.com/studio/index.html#downloads. Allerdings würde ich noch gerne wissen, ob die abgeschnittene Ausgabe ist das erwartete Verhalten fürsdkmanager
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist ein bekanntes Problem. On Jan 19, 2017 ein Googler antwortete mit:
Aktualisierte Antwort (sdkmanager >= 26.0.1)
Als pro den Kommentar von @albodelu, kann dies nun getan werden: über
sdkmanager --list --verbose
Welche auf meiner Maschine ergibt sich:
Wenn das zu ausführlich ist, dann könnte man etwas wie die folgende:
sdkmanager --list --verbose | grep -vP "^Info:|^\s|^$|^done$"
Verwendet perl-kompatible reguläre Ausdrücke (
-P
) und einen grep-inversen entspricht (-v
) entfernen Sie alle Zeilen, beginnend mitInfo:
, beginnend mit Leerzeichen (^\s
), leere Zeilen (^$
), und Linien, die nur das Wortdone
:Alte Antwort
In der Zwischenzeiteinem anderen user herausgefunden, ein hässlicher hack, um eine Liste der vollständigen package-Namen:
grep -Riwo -e "path.*>" ~/.android | awk -F'path="' -F'"' {'print $2'} | sort | uniq
Referenz, gibt die folgende Ausgabe für mich (inklusive ein bisschen Müll, aber das ist mir egal, weil ich wenigstens sehen kann, package-Namen nun:
sdkmanager --list --verbose
Listen-Pakete ohne abschneiden des Protokolls.^\s
argument, dieser Befehl funktionierttools\bin\sdkmanager --list --verbose | grep -vP "^Info:|^\ |^$|^done$
sdkmanager --list --verbose | grep -v "^Info:|^\s|^$|^done$"
funktioniert.Hier ist ein Befehl, um zu extrahieren alle installierten android-SDK Pakete mit Müll-Ausgang: