Seit Gradle Android Plugins 2.2-alpha4 :
Gradle wird versuchen, fehlende SDK-Pakete eines Projekts herunterzuladen kommt drauf an
Welches ist erstaunlich cool und war ein JakeWharton-Projekt .
Um die SDK-Bibliothek herunterzuladen, müssen Sie: die Lizenzvereinbarungen akzeptieren oder den Graduierten mitteilen:
Sie haben die Lizenzvereinbarungen des folgenden SDK nicht akzeptiert Komponenten: [Android SDK Build-Tools 24, Android SDK-Plattform 24] . Bevor Sie Ihr Projekt erstellen, müssen Sie die Lizenz akzeptieren vereinbaren und schließen Sie die Installation der fehlenden Komponenten ab mit dem Android Studio SDK Manager. Alternativ können Sie auch lernen, wie Übertragen Sie die Lizenzvereinbarungen von einer Workstation auf eine andere, gehen Sie zu http://d.Android.com/r/studio-ui/export-licenses.html
Und das ist ein Problem, weil ich alle sdk-Abhängigkeiten installieren möchte, während ich einen gradle build
mache.
Ich suche nach einer Lösung, um automatisch alle Lizenzen zu akzeptieren. Vielleicht ein Abschluss-Skript? Haben Sie Ideen?
Vielen Dank!
[BEARBEITEN]
Eine Lösung bestand darin, Folgendes auszuführen:
Android update sdk --no-ui --filter build-tools-24.0.0,Android-24,extra-Android-m2repository
Und es manuell installieren, aber es ist die neue Funktion des Gradles, dies zu tun.
[Bearbeiten 2]
Eine bessere Lösung ist die Verwendung des sdkmananger:
yes | Sudo sdkmanager --licenses
AndroidSDK kann endlich Lizenzen akzeptieren.
yes | sdkmanager --licenses
Dies ist mir mit der alpha5
-Vorschau begegnet.
Jake Wharton hat mich darauf hingewiesen, dass Sie derzeit verwenden können
mkdir -p "$Android_SDK/licenses"
echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$Android_SDK/licenses/Android-sdk-license"
echo -e "\n84831b9409646a918e30573bab4c9c91346d8abd" > "$Android_SDK/licenses/Android-sdk-preview-license"
um den aktuellen $Android_HOME/license
-Ordner auf Ihrem Computer neu zu erstellen. Dies hätte das gleiche Ergebnis wie der im Link der Fehlermeldung msg ( http://tools.Android.com/tech-docs/new-build-system/license ) beschriebene Prozess.
Die Hashes sind Sha1s des Lizenztextes, von dem ich annehme, dass er regelmäßig aktualisiert wird, so dass dieser Code nur so lange funktionieren wird :)
Und es manuell installieren, aber es ist die neue Funktion des Gradles, dies zu tun.
Ich war zuerst überrascht, dass dies nicht sofort funktioniert hat, obwohl ich die Lizenzen für die genannten Komponenten über das Tool Android
akzeptiert hatte. Es wurde jedoch darauf hingewiesen, dass der SDK-Manager innerhalb des AS den Ordner /licenses
erstellt.
Ich vermute, dass offizielle Instrumente diesen Schritt aus rechtlichen Gründen nicht überspringen möchten.
Lesen Sie die Versionshinweise erneut durch
Automatischer SDK-Download: Gradle versucht, fehlende SDK-Pakete herunterzuladen, von denen ein Projekt abhängig ist.
Dies bedeutet nicht, dass es funktioniert, wenn Sie die Android-Tools noch nicht installiert haben und die neuesten Lizenzen bereits akzeptiert haben.
EDIT: Wenn ich das sage, funktioniert es auf meiner Test-Gubuntu-Box immer noch nicht, bis ich das SDK mit AS verbinde. CI funktioniert aber gut - nicht sicher, was der Unterschied ist ...
Für das neueste Android Studio (2.3) können Sie alle Lizenzen aktualisieren/akzeptieren, indem Sie Folgendes ausführen:
tools/bin/sdkmanager --licenses
möglicherweise müssen Sie die Lizenzdateien je nach Konfiguration noch an andere Speicherorte kopieren.
Für das neue Dienstprogramm sdkmanager
:
yes | $Android_HOME/tools/bin/sdkmanager "build-tools;24.0.3"
Es gibt eine gewisse Verzögerung zwischen den Yesses, daher könnte der Befehl eine Zeit lang mit der Lizenz angezeigt werden, aber es ist kein menschlicher Eingriff erforderlich.
Wenn Sie Jenkins verwenden, können Sie das folgende Bash-Skript als ersten Schritt des Erstellungsprozesses verwenden:
(while sleep 3; do echo "y"; done) | $Android_HOME/tools/Android update sdk -u
Dadurch werden natürlich ALLE verfügbaren Updates installiert, aber Sie sparen Zeit, wenn Sie Speicherplatz sparen können. Der Schlaf dient dazu, die fehlerhafte Readline im Installationsprogramm zu vermeiden, da "yes" in diesem Fall nicht ordnungsgemäß funktioniert.
BEARBEITEN: Sie müssen auch das Plugin "Android-Projektvoraussetzungen installieren" im Erstellungsschritt hinzufügen, um den korrekten $ Android_HOME zu erhalten, wenn Sie den integrierten SDK-Manager verwenden.
Leider ist der Weg, den OP ursprünglich gelöst hat, nicht immer funktioniert. Wenn Sie anhand der Fehlermeldung herausfinden, wie hoch Ihre aktuellen Builds sind, geben Sie build-tools version an. Es kann sein, dass es eine höhere Version von Build-Tools gibt, die fehlt. In diesem Fall müssen Sie SDK Manager manuell starten und die Build-Tools hinzufügen und die Lizenz akzeptieren.
Pro OP-Anweisungen sieht es folgendermaßen aus.
$ ./gradlew build
Um die JVM-Einstellungen für diesen Build zu berücksichtigen, wird eine neue JVM eingerichtet. Bitte überlegen Sie, den Daemon zu verwenden: https://docs.gradle.org/2.14.1/userguide/gradle_daemon.html. FAILURE: Fehler beim Erstellen mit der Ausnahme . * Was ist schiefgegangen : Beim Konfigurieren des Projekts ': app' . Ist ein Problem aufgetreten.> Sie haben den Lizenzvereinbarungen der folgenden SDK-Komponenten nicht zugestimmt: [Android SDK Build-Tools 24.0.2] . ... BUILD FAILED
HINWEIS: 2017-04-16
Das Tool
Android
wurde nun zugunsten der neuensdkmanager
nicht mehr unterstützt. Bitte lesen Sie Joe Lawsons answer und nachfolgende Beiträge ab März (2017) und darüber.
Passen Sie dann Ihren Befehl wie folgt an:
Android update sdk --no-ui --filter build-tools-24.0.2,Android-24,extra-Android-m2repository
Quellen aktualisieren: Rufen Sie https://dl.google.com/Android/repository/addons_list-2.xml.__ ab. Validieren Sie XML XML analysieren Add-Ons-Liste wurde erfolgreich abgerufen Quellen aktualisieren Abruf-URL: https://dl.google.com/Android/repository/repository-11.xml Überprüfen Sie XML: https://dl.google.com/Android/repository/repository-11.xml Parse XML: https://dl.google.com/Android/repository/repository-11.xml ... Error: Ignorieren eines unbekannten Paketfilters 'build-tools-24.0.2'. ------------------------------ Lizenz-ID: Android-sdk-license-xxxxxxxx Verwendet von: - SDK-Plattform Android 7.0, API 24, Version 2 - Android Support Repository, Revision 39 --------------------------- ... 20. November 2015 Sie akzeptieren die Lizenz 'Android-sdk-license-xxxxxxxx' [j/n]: y Installationsarchiv: Vorbereiten der Installation von Archiven Herunterladen von SDK Platform Android 7.0, API 24, Version 2 Installieren von SDK Platform Android 7.0, API 24, Version 2 Installierte SDK-Plattform Android 7.0, API 24, Version 296%) Android Support Repository herunterladen, Version 39 Installieren des Android Support Repository, Revision 39 Installiertes Android Support Repository, Version 3999%) Erledigt. 2 Pakete installiert .
Wenn Sie dies noch einmal ausführen, machen Sie Gradle noch immer nicht glücklich. Manuelle Annahme ist also die einzige Lösung, bis jemand etwas Besseres findet. (Bitte!)
das hat meinen fehler behoben
echo yes | $Android_HOME/tools/bin/sdkmanager "build-tools;25.0.2"
Das Android
-Tool ist veraltet und Sie sollten stattdessen die sdkmanager
verwenden. sdkmanager
schreibt auch die Lizenzdatei, wenn Sie sie zum ersten Mal akzeptieren. Die Lizenz hängt von dem verwendeten SDK ab, obwohl Sie den Befehl verwenden
echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$Android_SDK/licenses/Android-sdk-license"
funktioniert auf einigen Systemen. Es funktioniert nicht bei allen. Einige SDK-Installationen erwarten, dass die Lizenz der Datei ohne Zeilenumbruch in der Datei endet. Fügen Sie dem echo-Befehl einen -n
hinzu.
echo -n -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$Android_SDK/licenses/Android-sdk-license"
Wenn dies nicht funktioniert, können Sie stattdessen die base64-Kodierung verwenden.
Um meine Lizenz zu entdecken:
$> rm ${Android_HOME}/
$> unzip tools_r25.2.3-linux.Zip -d ${Android_HOME}
$> ${Android_HOME}/tools/bin/sdkmanager "system-images;Android-23;default;x86_64"
Sie werden aufgefordert, die Lizenz zu akzeptieren. Nach dem Akzeptieren wird es nach ${Android_HOME}/licenses/Android-sdk-license
kopiert. Um sicherzustellen, dass Sie immer genau das bekommen, was geschrieben wird, verwenden Sie base64
.
$> base64 ${Android_HOME}/licenses/Android-sdk-license
Cjg5MzNiYWQxNjFhZjQxNzhiMTE4NWQxYTM3ZmJmNDFlYTUyNjljNTU=
Dann können Sie base64 -d
verwenden, um die Datei genau neu zu erstellen.
$> echo Cjg5MzNiYWQxNjFhZjQxNzhiMTE4NWQxYTM3ZmJmNDFlYTUyNjljNTU= | base64 -d > ${Android_HOME}/licenses/Android-sdk-license
Sie können überprüfen, ob die geschriebene Datei erwartet wird, indem Sie eine sha1sum-Datei ausführen.
$> sha1sum ${Android_HOME}/licenses/Android-sdk-license
da6b80c9c47b41c0bf7032938e7137a58a3dc249
wenn Sie yes | sdkmanager --licenses
ausführen, drucken wir den Inhalt von $Android_HOME/licenses/Android-sdk-license
.
wir werden das bekommen
# cat $Android_HOME/licenses/Android-sdk-license
8933bad161af4178b1185d1a37fbf41ea5269c55
d56f5187479451eabf01fb78af6dfcb131a6481e
Damit GitLab CI Lizenzen für Android SDK Build-Tools 26.0.2 akzeptieren kann, müssen Sie dies ausführen
before_script:
- mkdir -p $Android_HOME/licenses
- echo "8933bad161af4178b1185d1a37fbf41ea5269c55" > $Android_HOME/licenses/Android-sdk-license
- echo "d56f5187479451eabf01fb78af6dfcb131a6481e" >> $Android_HOME/licenses/Android-sdk-license
Wir fanden das gleiche Problem beim Aufbau des Projekts auf Jenkins. Mit buildToolsVersion '25.0.2'
müssen wir vor dem Erstellen Lizenzen akzeptieren. In unserem Fall mussten wir Folgendes ausführen:
yes | sdkmanager --update
, das Lizenzen für den sdkmanager selbst akzeptiert, und dann
yes | sdkmanager --licenses
, das neue, bisher nicht akzeptierte Lizenzen akzeptiert
Denken Sie daran: Führen Sie diese Kommandos mit demselben Benutzer aus wie jenkins
. In meinem Debian ist der Jenkins-Benutzer nur jenkins
. Mit anderen Worten: Wenn Sie dies als root
tun, werden die akzeptierten Lizenzen als root
erstellt, sodass Jenkins sie nicht lesen kann.
Übrigens haben wir sdkmanager
bei /var/lib/jenkins/tools/Android-sdk/tools/bin
gefunden. Wenn Ihre nicht vorhanden ist, suchen Sie sie mit find / -name "sdkmanager"
Beachten Sie, dass build-tools-24.0.2 für jeden, der derzeit zu dieser Frage kommt, (ich denke) jetzt als veraltet gilt. Sie erhalten also:
Error: Ignoring unknown package filter 'build-tools-24.0.2'
wenn Sie die verschiedenen Befehle ausführen, für deren Installation sie vorgeschlagen wurden.
Die Lösung ist, --all
hinzuzufügen:
Android update sdk --no-ui --all --filter "build-tools-24.0.2"
Auch wenn Sie 32-Bit-Linux verwenden, ist allesnach Build-Tools 23.0.1 nur 64bit und wird daher nicht ausgeführt. 32-Bit-Benutzer stecken bei 23.0.1 fest. Die einzige Möglichkeit, spätere Build-Tools zu erhalten, besteht darin, auf 64-Bit zu wechseln.
Wenn Sie tools/bin/sdkmanager --licenses
verwenden, müssen Sie noch eine menschliche Interaktion haben. Ich habe das Problem mit meinem Gitlab-CI. Das ist meine Lösung:
wget --quiet --output-document=tools.Zip https://dl.google.com/Android/repository/sdk-tools-linux-3859397.Zip
unzip -qq tools.Zip
echo y | tools/bin/sdkmanager "platforms;Android-25"
echo y | tools/bin/sdkmanager "platform-tools"
echo y | tools/bin/sdkmanager "build-tools;25.0.2"
echo y | tools/bin/sdkmanager "extras;Android;m2repository"
echo y | tools/bin/sdkmanager "extras;google;m2repository"
echo y
sagt Ja, wenn Fragen auftauchen, aber Sie müssen eine Zeile pro Installationspaket machen
Sie können auch nur ausführen:
$Android_HOME/tools/bin/sdkmanager --licenses
In Windows führen Sie Folgendes aus:
%Android_HOME%/tools/bin/sdkmanager --licenses
Für eine Fehlermeldung zu SDK api Nummer 25:
Android update sdk --no-ui --all --filter build-tools-25.0.1,Android-25,extra-Android-m2repository
OK FÜR JEDER, DER DIESE AUSGABE AB 2018 HAT. Die obigen Antworten funktionierten überhaupt nicht für mich. Was DID funktionierte, war das Öffnen von Android SDK - Klicken Sie auf die Schaltfläche DOWNLOAD in der Symbolleiste und wählen Sie die entsprechenden Pakete aus. Nachdem der Download abgeschlossen ist, akzeptieren Sie die Lizenzvereinbarung.
Für Benutzer, die Probleme mit dem Befehlszeilen-SDK haben, werden die akzeptierten Lizenzen nicht gefunden, weil sie an einen anderen Speicherort als $Android_HOME/licenses
geschrieben wurden. Dort müssen sie sich befinden.
Die einfachste Lösung war, die Lizenzen wie folgt zu akzeptieren:
$Android_HOME/bin/sdkmanager --licenses --sdk_root=$Android_HOME
Hinweis: Hierbei wird davon ausgegangen, dass Sie Android_HOME
so eingestellt haben, dass er auf den Ort verweist, an dem Ihre SDK installiert ist.
Ich habe dieses Problem gelöst, indem ich ein öffentliches Git-Repo mit den akzeptierten Lizenzdateien erstellt habe. Dann benutze ich wget
, um diese Lizenzen auf einem beliebigen Computer in ein Verzeichnis [sdk-dir]/Lizenzen zu laden, bevor ich ./gradlew ausführt, um mein Projekt zu erstellen.
Unter Windows habe ich endlich eine Lösung gefunden, um eine echte stille und automatische Installation durchzuführen:
Unter Windows funktioniert die folgende Syntax nicht:
echo y | sdkmanager --licenses
Es scheint, dass die "y" nicht korrekt an das im Stapel aufgerufene Java-Programm gesendet wurden.
Die Problemumgehung besteht darin, eine Datei file-y.txt mit mehreren "y", zeilenweise, zu erstellen und zu verwenden
call sdkmanager --licenses < file-y.txt
Dadurch werden die erforderlichen Dateien im Lizenzverzeichnis erstellt. Das Problem hängt wahrscheinlich mit der Verwendung von BufferedReader in Java zusammen
Ich hatte den gleichen Fehler bei der Verwendung von Cordova.
Das Problem war auf die Tatsache zurückzuführen, dass ich Android Sdk über Android Studio und apt
mit apt install Android-sdk adb
installiert habe. Und Cordova ruft die installierten Dateien über apt
anstelle der Dateien in meinem Home-Verzeichnis auf.
Es hat funktioniert, sobald ich den Pfad zu SDK in Bash geändert habe:
# Change path
export Android_HOME="$HOME/Android/Sdk/"
echo "Android home = $Android_HOME"
# Accept licenses
eval "${Android_HOME}/tools/bin/sdkmanager --licenses"
# Run Cordova
cordova build Android
Dann entfernte ich die Systemdateien, die nicht mehr verwendet wurden: apt remove Android-sdk adb
.
Hier ist mein Docker-Setup.
Sie können aus einer einfachen Linux-Umgebung folgen.
Beachten Sie die yes |
- und --licenses --sdk_root=${Android_HOME}
-Klauseln.
Es scheint, dass sdkmanager --update
Vereinbarungen zurücknimmt, so dass yes |
zweimal erscheint.
FROM openjdk:8
# Install dev-essential(gnumake)
RUN apt update
RUN apt install -y build-essential
# Set ENV
ENV SDK_URL="https://dl.google.com/Android/repository/sdk-tools-linux-4333796.Zip" \
Android_HOME="/usr/local/Android-sdk" \
Android_VERSION=28 \
Android_BUILD_TOOLS_VERSION=28.0.3 \
GRADLE_VERSION=4.10.3 \
NDK_VERSION=r16b
# Download Android SDK
RUN mkdir "$Android_HOME" .Android \
&& cd "$Android_HOME" \
&& curl -o sdk.Zip $SDK_URL \
&& unzip sdk.Zip \
&& rm sdk.Zip \
&& yes | $Android_HOME/tools/bin/sdkmanager --licenses --sdk_root=${Android_HOME}
# Install Android Build Tool and Libraries
RUN $Android_HOME/tools/bin/sdkmanager --update
RUN yes | $Android_HOME/tools/bin/sdkmanager "build-tools;${Android_BUILD_TOOLS_VERSION}" \
"platforms;Android-${Android_VERSION}" \
"platform-tools" --sdk_root=${Android_HOME}
# Install Gradle
RUN wget https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-all.Zip
RUN mkdir /opt/gradle
RUN unzip gradle-${GRADLE_VERSION}-all.Zip -d /opt/gradle
ENV PATH=${PATH}:/opt/gradle/gradle-${GRADLE_VERSION}/bin
# Install NDK
RUN wget https://dl.google.com/Android/repository/Android-ndk-${NDK_VERSION}-linux-x86_64.Zip
RUN mkdir /opt/ndk-bundle
RUN unzip Android-ndk-${NDK_VERSION}-linux-x86_64.Zip -d /opt/ndk-bundle
ENV PATH=${PATH}:/opt/ndk-bundle
RUN mkdir /application
WORKDIR /application
Sie können die gesamte Lizenz akzeptieren, indem Sie den folgenden Befehl ausführen:
sdkmanager --licenses
Dadurch werden Sie durch die Lizenzen gebeten, die Sie noch nicht akzeptiert haben. Sie können einfach y
eingeben, um jede Lizenz anzunehmen.
Kopieren Sie die gesamten Lizenzen/Verzeichnisse und fügen Sie sie in das Android SDK-Basisverzeichnis auf dem Computer ein, auf dem Sie Ihre Projekte erstellen möchten.
https://developer.Android.com/studio/intro/update.html#download-with-gradle
das hat das Problem für mich gelöst
cd $Android_HOME/tools/bin
./sdkmanager --update
oder
$Android_HOME/tools/bin/sdkmanager --update
In Windows PowerShell können Sie dies tun
for($i=0;$i -lt 30;$i++) { $response += "y`n"}; $response | sdkmanager --licenses
Dies ist viel flexibler und erfordert keinen manuellen Eingriff. Die Anzahl ist willkürlich, sollte ausreichen, um die Anzahl der Lizenzannahmen abzudecken, kann aber bei Bedarf erhöht werden
Ab Juli 2019 ist die einfachste Methode die Verwendung von flutter doctor --Android-licenses
in der Eingabeaufforderung.
Es werden nacheinander die nicht akzeptierten AGB der SDKs angezeigt, und Sie haben die Möglichkeit, "J/N" zu wählen. Wähle y für alle.
Wenn Sie alternativ flutter doctor
ausführen, wird die Android Toolchain-Diagnose ausgeführt, in der angezeigt wird, wie viele Lizenzen noch nicht akzeptiert wurden, und es wird empfohlen, sie mit dem Flag --Android-licenses auszuführen.
Ich renne
#react-native run-Android
vom Terminal und traf dieses Problem. Gehen Sie für manuell zu Android Studio -> Android SDK -> SDK PlatformKlicken Sie auf Paketdetails anzeigen und prüfen Sie:
+ Google APIs
+ Android SDK Platform 23
+ Intel x86 Atom_64 System Image
+ Google APIs Intel x86 Atom_64 System Image
Aktivieren Sie bei der Installation von Paketen die Option zum Akzeptieren der Lizenz, um das Problem zu lösen.
öffnen Sie unter Windows cmd und rufen Sie das Verzeichnis bin
auf, indem Sie den folgenden Befehl ausführen:
cd C:\Users\username\AppData\Local\Android\sdk\tools\Android\Sdk\tools\bin
führen Sie dann den Befehl sdkmanager --licenses
aus, um Lizenzen zu akzeptieren.
Navigieren Sie unter Mac OSX zum sdk/tools/bin
Führen Sie dann ./sdkmanager --licenses
aus und akzeptieren Sie alle Lizenzen.
Ich navigiere zu:
/usr/lib/Android-sdk/licenses
und ich habe im Terminal eingegeben:
echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > $Android_SDK/licenses/Android-sdk-license"
Mit Root-Erlaubnis ... und jetzt funktioniert es für mich.
Gehen Sie in Windows zur Eingabeaufforderung und geben Sie die folgenden Befehle ein:
cd C:\Users\<Username>\AppData\Local\Android\Sdk\tools\bin
sdkmanager --licenses
Dadurch werden die Lizenzen generiert. Halten Sie "y" gedrückt, um alle Lizenzen zu akzeptieren.
Ich habe den gleichen Fehler der Lizenz nicht akzeptiert ... Beim Versuch, die Android-Umgebung so einzurichten, dass eine React-native App im Android-Emulator für API Level 23 ausgeführt wird.
Ich habe folgendes gemacht:
Basierend auf dem Link https://developer.Android.com/studio/intro/update#download-with-gradle
Verifiziert, ob die Lizenz über den SDK-Manager von Android Studio 3.1.3 heruntergeladen wurde.
Richten Sie Android_HOME als C: \\ Android\Sdk ein
(es wurde in C:\Users\Benutzername\AppData\Local\Android\Sdk installiert)
Der Fehler wurde behoben, nachdem der Build in einer neuen Eingabeaufforderung wiederholt wurde.
Es ist spät, aber alle oben genannten Lösungen funktionierten nicht für mich und schließlich akzeptierte diese einzige Zeile alle Android-Lizenzen.
yes | sdkmanager --licenses && sdkmanager --update
Ich hatte ein ähnliches Problem, das ich durch Öffnen von Android Studio gelöst habe. Tatsache war, dass Android Build Tools 26.0.2 nicht installiert war. Es wurde ein Fehler angezeigt, der mich darauf hinweist, ich habe es installiert und mit dem Projekt synchronisiert. Problem gelöst :)
Nachdem ich viele der möglichen Lösungen ausprobiert hatte, die von Mitgliedern aus der Community erwähnt wurden, habe ich festgestellt, dass es möglicherweise über die Zeit hinweg zu unterschiedlichen Problemen gekommen ist. Daher sind die meisten Lösungen veraltet.
Derzeit, und wie ich in der Travis-Community gepostet habe, sollte Travis standardmäßig alle Lizenzen akzeptieren, aber es wurde immer wieder darüber beklagt, dass die Lizenzen 27.0.3 nicht akzeptiert wurden.
Hinzufügen:
before_install:
- yes | sdkmanager "build-tools;27.0.3"
sollte das Problem behoben sein, könnten wir sogar eine 3. + Version der Android Gradle Tools verwenden, ohne dass wir sogar angeben müssen, welche Version der Build-Tools wir verwenden:
Android:
components:
# Use the latest revision of Android SDK Tools
- tools
- platform-tools
- tools
# The SDK version used to compile your project
- Android-${Android_API}
# - build-tools-28.0.3 # WE DONT NEED THIS ANYMORE FROM AGP 3.+
# Additional components
- extra-google-google_play_services
- extra-google-m2repository
- addon-google_apis-google-${Android_API}
Dies funktioniert wie am 29. Oktober 2018. Travis könnte in Zukunft Änderungen vornehmen, also viel Glück damit!
Unter Windows 10 wurde cmd
mit Administratorrechten geöffnet und dann cd C:\Program Files (x86)\Android\android-sdk\tools\bin\
eingegeben und dann sdkmanager --update
für mich gearbeitet. Danach musste ich einfach zweimal "y" drücken, um die Lizenzen zu akzeptieren.
Alles, was ich tun musste, war yes | sdkmanager --licenses > /dev/null
, und alles wurde akzeptiert und keine große Ausgabe auf der Konsole oder im Travis-Protokoll oder wo auch immer. Es funktioniert auch wie zum Beispiel yes | sdkmanager "tools" > /dev/null
.
FÜR REACT NATIVE-APPs:
Wenn Sie dieses Problem für eine React Native-App haben, vergewissern Sie sich zusätzlich zu den oben genannten Schritten, dass sich die Datei local.properties im Android-Verzeichnis (AppName/Android) Ihrer App befindet, die auf Ihr 'sdk'-Verzeichnis verweist:
sdk.dir=/PATH_TO_SDK/
Ich habe einen halben Tag damit verbracht, nach einer Lösung für Bitbucket Pipelines zu suchen.
Wenn Sie Bitbucket Pipelines verwenden und das Problem beim Akzeptieren aller SDK-Lizenzen besteht, versuchen Sie, diesen Code in Ihrer .yml-Datei zu verwenden:
image: mingc/Android-build-box:latest
pipelines:
default:
- step:
script:
- chmod +x gradlew
- ./gradlew assemble
Es sollte funktionieren.