Akzeptieren Sie automatisch alle SDK-Lizenzen
Da gradle android-plugins 2.2-alpha4:
Gradle wird versuchen, Sie zu downloaden fehlende SDK-Pakete, die von einem Projekt
hängt davon ab,
Ist erstaunlich kühl und war wissen ein JakeWharton Projekt.
Aber, der download der SDK-Bibliothek müssen Sie die Lizenzvereinbarung akzeptieren oder gradle sagt Sie:
Die Sie nicht angenommen haben, die Lizenz-Vereinbarungen von den nachfolgenden SDK
Komponenten: [Android SDK Build-Tools, 24, Android SDK Platform 24].
Vor dem erstellen Ihres Projekts, müssen Sie die Lizenz akzeptieren
Vereinbarungen und schließen Sie die installation der fehlenden Komponenten
mit dem Android Studio SDK-Manager. Alternativ, um zu erfahren, wie
übertragen Sie die Lizenz-Vereinbarungen von einem Arbeitsplatz zu einem anderen zu gehen
http://d.android.com/r/studio-ui/export-licenses.html
Und das ist ein problem, weil ich lieben würde, um zu installieren, alle sdk-Abhängigkeiten während einer gradle build
.
Ich bin auf der Suche nach einer Lösung, um automatisch akzeptieren aller Lizenzen. Vielleicht ein gradle-Skript ?
Haben Sie irgendwelche Ideen ?
Dank!
[BEARBEITEN]
Wurde eine Lösung auszuführen:
android update sdk --no-ui --filter build-tools-24.0.0,android-24,extra-android-m2repository
Und installieren Sie es manuell, aber es ist gradle das neue feature Zweck, es zu tun.
[EDIT 2]
Eine bessere Lösung ist die Verwendung der sdkmananger:
yes | sudo sdkmanager --licenses
echo y |
vor dem Befehl auto-akzeptieren Sie die Lizenz. Nützlich, wenn auf einem headless-CI-box 🙂 ~/.android/tools/android update sdk --no-ui --filter build-tools-25.0.0,android-25,extra-android-m2repository
, weil die android
- tool wurde lokalisiert zu mir nach Hause InformationsquelleAutor der Frage nsvir | 2016-06-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich Probleme mit der
alpha5
Vorschau.Jake Wharton mich darauf hingewiesen, dass derzeit können Sie mit
wieder den aktuellen
$ANDROID_HOME/license
Ordner auf Ihrer Maschine. Dies hätte das gleiche Ergebnis wie der beschriebene Prozess in der link von der Fehler-msg (http://tools.android.com/tech-docs/new-build-system/license).Die hashes sind sha1s der Lizenz text, die ich mir vorstellen werden regelmäßig aktualisiert, so dieser code funktioniert nur für so lange 🙂
Ich war zunächst überrascht, dass dies nicht funktioniert out of the box, auch wenn ich angenommen hatte, die Lizenzen für die genannten Komponenten über das
android
tool, aber es wurde darauf hingewiesen, mir den SDK manager innen, die schafft das/licenses
Ordner.Ich denke mal, die offiziellen tools würde nicht wollen, überspringen Sie diesen Schritt, aus rechtlichen Gründen.
Wiederlesen den release-notes heißt es
Was nicht bedeutet, es wird funktionieren, wenn Sie nicht installiert haben die android-tools noch und haben schon akzeptiert, die neueste Lizenz(en).
EDIT: zu Sagen, dass es immer noch nicht funktioniert, auf meinem test-gubuntu box, bis ich den link der SDK bis zu. CI funktioniert gut, obwohl nicht sicher, was der Unterschied ist...
InformationsquelleAutor der Antwort Dori
AndroidSDK können und endlich akzeptieren Lizenzen.
InformationsquelleAutor der Antwort
Für die neuesten Android-Studio (2.3) der beste Weg, um zu aktualisieren/übernehmen alle Lizenzen laufen:
könnten Sie noch brauchen, um zu kopieren Sie die Lizenz-Dateien an andere Speicherorte basierend auf Ihrem setup.
InformationsquelleAutor der Antwort bgies
Wenn Sie mit Jenkins, Sie können mit dem folgenden bash-script als ersten Schritt in den build-Prozess:
Diese werden natürlich ALLE verfügbaren updates zu installieren, aber es wird sparen Sie Zeit, wenn Sie können, spare den Speicherplatz. Der Schlaf ist zu vermeiden, die gebrochene readline in das Installationsprogramm, da "ja" funktioniert nicht richtig in diesem Fall.
BEARBEITEN: Sie müssen auch hinzufügen, die "Installation von Android-Projekt Voraussetzungen" - plugin im build-Schritt, um die richtigen $ANDROID_HOME wenn Sie mit dem integrierten SDK manager.
InformationsquelleAutor der Antwort raven
Für die neue
sdkmanager
utility:yes | $ANDROID_HOME/tools/bin/sdkmanager "build-tools;24.0.3"
Es ist ein bisschen von einer Verzögerung zwischen yesses, so konnte der Befehl hängen mit der Lizenz zeigt, für eine Weile, aber es erfordert keine menschliche intervention.
InformationsquelleAutor der Antwort A. Rager
Leider ist die Art und Weise, wie OP ursprünglich gelöst, es funktioniert nicht immer.
Wenn man hier von der Fehlermeldung, was Ihr baut aktuelle build-tools version. Es könnte sein, dass es sich um eine höhere version von build-tools, die fehlt. In diesem Fall müssen Sie manuell starten Sie die SDK-Manager, und fügen Sie die build-tools und akzeptieren Sie die Lizenz.
Pro OP Anweisungen, die es so Aussehen wie folgt.
$ ./gradlew build
Dann stellen Sie den Befehl wie folgt:
Läuft das wieder, noch machen Sie nicht Gradle glücklich. Also die manuelle Annahme ist die einzige Lösung, bis jemand sich mit etwas besser. (Bitte machen!)
InformationsquelleAutor der Antwort not2qubit
Den
android
tool ist veraltet und Sie sollten diesdkmanager
statt.sdkmanager
schreibt auch die Lizenzen-Datei, wenn Sie zunächst akzeptieren. Die Lizenz ändert sich abhängig von der SDK, die Sie verwenden, so dass, obwohl der Befehlfunktioniert auf einigen Systemen. Es funktioniert nicht bei allen. Einige SDK installiert, erwarten, dass die Lizenz-Datei zu beenden, ohne einen Zeilenumbruch in der Datei, so versuchen Sie, ein
-n
zu den echo-Befehl.Wenn das nicht funktioniert, können Sie versuchen, mithilfe der base64-Codierung statt.
So zu entdecken, meine Lizenz:
Es werden Sie aufgefordert, die Lizenzbedingungen anzunehmen. Nach der übernahme werde es kopieren zu
${ANDROID_HOME}/licenses/android-sdk-license
. Um sicherzustellen, dass Sie immer genau das bekommen, was geschrieben wird, verwendenbase64
.Dann können Sie
base64 -d
erstellen Sie die Datei genau.Können Sie überprüfen, wenn die Datei geschrieben ist, was erwartet wird, durch ausführen einer sha1sum.
InformationsquelleAutor der Antwort Joe Lawson
wenn Sie
yes | sdkmanager --licenses
, dann drucken wir Inhalt$ANDROID_HOME/licenses/android-sdk-license
,bekommen wir diesen
Für GitLab CI, zu akzeptieren, Android SDK Build-Tools 26.0.2 Lizenzen, die Sie benötigen zum ausführen dieser
InformationsquelleAutor der Antwort jk2K
dadurch gelöst, mein Fehler
InformationsquelleAutor der Antwort Cristian Agudelo
Beachten Sie, dass für jemand kommen, um diese Frage derzeit, build-tools-24.0.2 ist (glaube ich) jetzt als veraltet, so erhalten Sie:
bei der Ausführung der verschiedenen Befehle, die vorgeschlagen wurden, um Sie zu installieren.
Die Lösung ist das hinzufügen
--all
:Auch wenn Sie auf 32-bit-linux, alles nach dem build-tools 23.0.1 ist nur 64bit, so wird das nicht laufen. 32bit-Nutzer sind fest auf 23.0.1, der einzige Weg, um einen späteren build-tools ist der Umstieg auf 64bit.
InformationsquelleAutor der Antwort JosephH
Fanden wir demselben Thema Gebäude, das Projekt auf dem Jenkins. Mit
buildToolsVersion '25.0.2'
wir müssen akzeptieren, Lizenzen vor dem Gebäude. In unserem Fall mussten wir laufen:./sdkmanager --update
dass Anfragen, die uns zu übernehmen eine Lizenz für den sdkmanager, und dann./sdkmanager --licenses
dass Anfragen, die uns zu akzeptieren, neue Lizenzen, die zuvor nicht akzeptiertDenken Sie daran: führen Sie diese commans mit dem gleichen Benutzer, der
jenkins
tut. In meinem Debian, das Jenkins user ist nurjenkins
. In anderen Worten: tut es alsroot
erstellen der anerkannten Lizenzen, wieroot
, so Jenkins wird Sie nicht gelesen.Durch die Art und Weise, die wir gefunden
sdkmanager
bei/var/lib/jenkins/tools/android-sdk/tools/bin
. Wenn deiner nicht da ist, finden Sie es mitfind /-name "sdkmanager"
InformationsquelleAutor der Antwort Roc Boronat
Für eine Fehlermeldung über-SDK api-Nummer 25:
android update sdk --no-ui --all --filter build-tools-25.0.1,android-25,extra-android-m2repository
InformationsquelleAutor der Antwort ofir_aghai
Wenn Sie
tools/bin/sdkmanager --licenses
Sie noch brauchen, um eine menschliche Interaktion. Ich habe das problem mit meinem gitlab CI. Dies ist meine Lösung:echo y
wird ja sagen, wenn es irgendeine Frage gibt, aber Sie brauchen, um eine Zeile pro installe PaketInformationsquelleAutor der Antwort Thibaut Mottet
Löste ich dieses problem durch die Schaffung eines öffentlichen git-repo mit den anerkannten Lizenz-Dateien. Dann benutze ich
wget
zu Holen, diese Lizenzen auf jeder Maschine, die ich brauche in eine [sdk-dir]/Lizenzen Verzeichnis vor dem ausführen ./gradlew zu bauen, mein Projekt.InformationsquelleAutor der Antwort Igor Ganapolsky
Ich hatte den gleichen Fehler bei der Verwendung von Cordova.
War das problem aufgrund der Tatsache, dass ich installiert Android Sdk von Android Studio und durch
apt
mitapt install android-sdk adb
. Und Cordova rief die Dateien installiert, überapt
anstatt die Dateien in meinem home-Verzeichnis.Es funktionierte, sobald ich den Pfad geändert, um die SDK in der bash:
Dann entfernte ich die system-Dateien, die nicht mehr verwendet:
apt remove android-sdk adb
.InformationsquelleAutor der Antwort A.L
Kopieren Sie den gesamten licenses/- Verzeichnis und fügen es in das Android-SDK home-Verzeichnisses auf dem Rechner, auf dem Sie bauen wollen, Ihre Projekte.
https://developer.android.com/studio/intro/update.html#download-with-gradle
diese behoben das Problem für mich
InformationsquelleAutor der Antwort surya
cd $ANDROID_HOME/tools/bin
./sdkmanager --update
InformationsquelleAutor der Antwort Jimmy Yin
Können Sie akzeptieren die Lizenz, indem Sie den folgenden Befehl ausführen:
Dadurch werden Sie aufgefordert, durch die einzelnen Lizenzen, die Sie noch nicht akzeptiert, noch, und Sie können geben Sie einfach
y
zu akzeptieren, jeder von Ihnen.InformationsquelleAutor der Antwort Manoj Shrestha
Ok FÜR alle MIT DIESEM PROBLEM ab 2018. Die oben genannten Antworten funktionierte NICHT für mich überhaupt. Was funktioniert HAT war das öffnen Android SDK - Klick auf den DOWNLOAD-button auf der Symbolleiste und wählen Sie die entsprechenden Pakete. Nachdem Sie fertig heruntergeladen sind, wird es lassen Sie die Lizenzvereinbarung akzeptieren.
InformationsquelleAutor der Antwort user2967081
Können Sie auch einfach ausführen
$ANDROID_HOME/tools/bin/sdkmanager --Lizenzen
Oder für Windows ausführen
%ANDROID_HOME%/tools/bin/sdkmanager --Lizenzen
InformationsquelleAutor der Antwort r1si
Für diejenigen, die Probleme mit der Befehlszeile SDK, der Grund, warum es nicht finden, die Lizenzen, die Sie angenommen haben, weil Sie geschrieben wurden, an einen anderen Ort als
$ANDROID_HOME/licenses
das ist, wo Sie sein müssen.Fand ich die einfachste Lösung war zu akzeptieren die Lizenzen so:
$ANDROID_HOME/bin/sdkmanager --licenses --sdk_root=$ANDROID_HOME
Hinweis: Dies setzt Voraus, die Sie sich gesetzt haben
ANDROID_HOME
zu zeigen, wo die sdk installiert ist.InformationsquelleAutor der Antwort monkjack
In Windows PowerShell, die Sie tun können,
Dies ist sehr viel flexibler und erfordert null manuelle Eingriffe. Der 30-Anzahl ist beliebig, sollte ausreichen werden, um die Anzahl der Lizenz-zusagen, kann aber im Bedarfsfall erhöht werden
InformationsquelleAutor der Antwort Mark Johnson
Ich laufen
vom terminal und traf das problem.
Für manuell, gehen Sie zu Android Studio -> Android-SDK -> SDK-Plattform
Klicken Sie auf Pakete, die Details und prüfen :
Beim installieren von Paketen, prüfen, akzeptieren, Lizenz => das problem lösen kann.
InformationsquelleAutor der Antwort Phuc Nguyen
Auf Mac OSX, navigieren Sie zu der
sdk/tools/bin
Führen
./sdkmanager --licenses
, und akzeptieren Sie die Lizenzen.InformationsquelleAutor der Antwort Micheal C Wallas
Gibt es 2 Ansatz, den ich für dieses problem gefunden.
Update sdk-tools, mit Fenster Befehl durch akzeptieren der Lizenzvereinbarung wie folgt, ändern Sie einfach die version, nach Ihrem Bedarf.
android update sdk --no-ui --filter build-tools-25.0.2,android-25,extra-android-m2repository
Zweite Ansatz ist das kopieren der Lizenz-Ordner auf Android-root-Verzeichnis. Goto Ihrem Entwicklungscomputer öffnen Sie Android Studio. Finden Sie Ihre sdk-Pfad von Projekt-Struktur-Menü. (C:\Users\UserName\AppData\Local\Android\sdk). Unter diesem Verzeichnis muss es eine Lizenz-Ordner. Kopieren Sie diesen Ordner mit dem Inhalt. Fügen Sie den Ordner im Jenkins-server-Maschine (oder wo Sie stehen mit diesem problem) unter android-sdk-root-Ordner. (C:\Users\UserName.jenkins\tools\android-sdk)
InformationsquelleAutor der Antwort DiRiNoiD
Schließlich, diese 2 einfachen Schritte arbeitete für mich auf windows 10.
1) Stellen Sie sicher, aktualisieren Sie Ihre android-build-tools und api. Auf Ihr Android-Sdk-klicken Sie Einfach auf installieren Sie Pakete zu installieren Verfügbarer updates.
2) Starten Sie Ihr Android-Studio, und Sie werden aufgefordert werden, installieren Sie die reqiured build-tools, für die bereits aktualisierte api und tools, Dies wird die build-tools installieren Eigenschaften, einschließlich der Lizenzen und fertig.
InformationsquelleAutor der Antwort Chinedu Etoh
Ich navigieren Sie zu:
und ich tippte im terminal:
Mit root-Berechtigung.
Und es funktioniert bei mir jetzt.
InformationsquelleAutor der Antwort Vinicius de Santana
FÜR REAGIEREN NATIVE APPs:
Wenn Sie mit diesem problem Reagieren Native app, zusätzlich zu den oben genannten Schritte aus, und stellen Sie sicher, dass die lokalen.Eigenschaften Datei im android-Verzeichnis(AppName/android) der app, die Sie Punkte auf Ihr 'sdk' Verzeichnis:
InformationsquelleAutor der Antwort Nauman Tahir
Schließlich fand ich eine Lösung, die auf Windows, um ein echtes silent und automatische installieren:
Unter Windows, die folgende syntax funktioniert nicht:
Scheint es, das "y" nicht korrekt gesendet, um das java-Programm aufgerufen, in der batch.
Die Problemumgehung ist, um eine Datei zu erstellen file-y.txt mit mehreren "y", eine durch die Linie, und verwenden
Dies wird die benötigten Dateien im Verzeichnis "licenses". Das problem ist wahrscheinlich mit der Verwendung von BufferedReader in den Java -
InformationsquelleAutor der Antwort moobyfr
Ich habe versucht, alle oben genannten Befehl auf windows 10 Maschine
aber die Lösung war die Verwendung der SDKMANAGER zu überprüfen und zu akzeptieren, Lizenzen kaufen, installieren von fehlenden Versionen
InformationsquelleAutor der Antwort Aymen Boumyza