it-swarm.com.de

Akzeptieren Sie automatisch alle SDK-Lizenzen

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
312
nsvir

AndroidSDK kann endlich Lizenzen akzeptieren.

yes | sdkmanager --licenses
192
nsvir

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 ...

166
Dori

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. 

117
bgies

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.

51
A. Rager

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.

40
raven

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 neuen sdkmanager 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!)

29
not2qubit

das hat meinen fehler behoben

echo yes | $Android_HOME/tools/bin/sdkmanager "build-tools;25.0.2"
27

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
20
Joe Lawson

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
19
jk2K

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"

17
Roc Boronat

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.

15
JosephH

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

12
Thibaut Mottet

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
11
r1si

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

10
ofir_aghai

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.

enter image description here

7
user2967081

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.

6
monkjack

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.

5
IgorGanapolsky

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

4
moobyfr

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.

3
A.L

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
3
Youngjae

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.

3
Manoj Shrestha

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

3
surya

cd $Android_HOME/tools/bin ./sdkmanager --update

oder 

$Android_HOME/tools/bin/sdkmanager --update

2
Jimmy Yin

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

2
Mark Johnson

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.

2
Buldo

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.

1
Phuc Nguyen

ö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.

1
Deepak Kumrawat

Navigieren Sie unter Mac OSX zum sdk/tools/bin

Führen Sie dann ./sdkmanager --licenses aus und akzeptieren Sie alle Lizenzen.

1

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.

0

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.

0

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.

0
VShank

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
0
Swapnil Kotwal

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 :)

0
Justine M

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!

0
cesards

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.

0
JedatKinports

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.

0
pvinis

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/
0
Nauman Tahir

Ich habe alle oben genannten Befehle auf Windows 10-Computern ausprobiert. Die Lösung bestand jedoch darin, den SDKMANAGER zu verwenden, um Lizenzen zu prüfen und zu akzeptieren, wenn fehlende Versionen installiert wurden

 enter image description here

0
Aymen Boumyza

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.

0
eltray