it-swarm.com.de

Flutter.io Android-Lizenzstatus Unbekannt

[!] Android Toolchain - Entwicklung für Android-Geräte (Android SDK 27.0.3)

• Android SDK a ..\Android\sdk • Android-NDK-Speicherort nicht konfiguriert (optional; nützlich für native Profilerstellung) • Plattform Android-27, Build-Tools 27.0.3 • Java-Binärdatei unter: C:\Programme\Android\Android Studio\jre\bin\Java • Java-Version OpenJDK Runtime Environment (Build 1.8.0_152-Version-1024-b02) X Android-Lizenzstatus unbekannt.

Ich erhalte eine Fehlermeldung mit Android Sdk, wenn ich Flutter Doctor starte, obwohl ich immer noch auf meinem Gerät Build/Run ausführen kann. Ich war nur neugierig, wie man dieses Problem beheben kann. Ich glaube, ich habe die aktuellste Version der Android-SDK heruntergeladen. Ich bin mir nicht sicher, was passiert ist, weil ich dieses Problem letzte Woche nicht hatte.

Neue Ausgaben

Nach einigen möglichen Korrekturen in den Kommentaren führte dies zu einem neuen Problem. Ich habe neuere Versionen von Android SDK P, 8 und 7 zusammen mit einem neuen JDK10 installiert. Offenbar immer noch nicht genug aktualisiert.

C:\Flutter\flutter>flutter doctor --Android-licenses
A newer version of the Android SDK is required. To update, run:
C:\Users\tdmil\AppData\Local\Android\sdk\tools\bin\sdkmanager --update

C:\Flutter\Flutter> C:\Benutzer\Benutzername\Anwendungsdaten\Local\Android\sdk\tools\bin\sdkmanager.bat - Update

Exception in thread "main" Java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
        at com.Android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.Java:156)
        at com.Android.repository.api.SchemaModule.<init>(SchemaModule.Java:75)
        at com.Android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.Java:81)
        at com.Android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.Java:73)
        at com.Android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.Java:48)
Caused by: Java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
        at Java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.Java:582)
        at Java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.Java:190)
        at Java.base/Java.lang.ClassLoader.loadClass(ClassLoader.Java:499)
        ... 5 more
12
tdmiller

Wenn Sie das Android SDK aktualisiert haben, haben sich die Lizenzen möglicherweise geändert. Je nachdem, wie Sie das Update durchgeführt haben, wurden Sie möglicherweise aufgefordert, die Änderungen zu akzeptieren, oder es bewahrt nicht die Tatsache, dass Sie sie auf eine Art und Weise akzeptiert haben, die das Flattern verstehen kann.

Um das Problem zu beheben, führen Sie flutter doctor --Android-licenses aus. Dies sollte Sie dazu auffordern, Lizenzen zu akzeptieren (möglicherweise werden Sie zuerst gefragt, ob Sie y eingeben und die Eingabetaste drücken - obwohl es Ihnen sagen sollte).

Wenn Sie danach immer noch Probleme haben, lohnt es sich möglicherweise, entweder einen neuen Fehler im Flutter Github-Repository zu öffnen, oder einen Kommentar zu einem bestehenden Problem wie this hinzuzufügen, da es vielleicht das ist, was Sie ' wieder sehen.

21
rmtmckenzie

Hier sind die Schritte, die mein Problem lösen:

  1. Öffnen Sie Ihr Terminal
  2. typ flutter doctor --Android-licenses
  3. drücken Sie y, um zu akzeptieren. Dieser Vorgang kann mehrmals ausgeführt werden. Erledigt!

Der Fehler:

Exception in thread "main" Java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
        at com.Android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.Java:156)
        at com.Android.repository.api.SchemaModule.<init>(SchemaModule.Java:75)
        at com.Android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.Java:81)
        at com.Android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.Java:73)
        at com.Android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.Java:48)
Caused by: Java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
        at Java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.Java:582)
        at Java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.Java:190)
        at Java.base/Java.lang.ClassLoader.loadClass(ClassLoader.Java:499)
        ... 5 more

tritt auf, weil die aktuelle SDK-Version nicht mit Java 9 kompatibel ist.

Um dies zu beheben, können Sie Ihre Java-Version auf Java 8 herunterstufen oder mit einer Problemumgehung die folgende Option auf Ihr Terminal exportieren:

Linux:

export Java_OPTS='-XX:+IgnoreUnrecognizedVMOptions --add-modules Java.se.ee'

Windows :

set Java_OPTS=-XX:+IgnoreUnrecognizedVMOptions --add-modules Java.se.ee'

Und damit es haften bleibt, können Sie Java_OPTS in Ihrer Profildatei unter Linux exportieren (.zshrc, .bashrc usw.) oder unter Windows dauerhaft als Umgebung hinzufügen.


Dann können Sie den Befehl Flattern oder Sdkmanager eingeben:

Flattern :

flutter doctor --Android-licenses

sdkmanager :

sdkmanager --licenses

und geben Sie J ein, wenn Sie die Lizenzen akzeptieren möchten.

5
coderade

Dies war auch meine Ausgabe als # 16025

Für eine Ausnahme im Thread "main" Java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema Dieses Problem tritt normalerweise auf, wenn Sie zuvor Java 9 installiert haben. Übrigens ist es nicht mit Android-SDK kompatibel. Versuchen Sie, Java 9 JDK zu entfernen, falls es noch vorhanden ist. 

Im Allgemeinen werden JAXB-APIs als Java EE-APIs betrachtet und daher sind in Java SE 9 nicht mehr im Standardklassenpfad enthalten. Java 9 stellt die Konzepte von Modulen vor und standardmäßig Java.se Das Aggregatmodul steht im Klassenpfad (bzw. Modul Pfad) zur Verfügung. Wie der Name andeutet, verwendet das Java.se-Aggregatmodul nicht umfassen die Java EE-APIs, die traditionell mit .__ gebündelt wurden. Java 6/7/8. Glücklicherweise sind diese Java EE-APIs, die in .__ bereitgestellt wurden. JDK 6/7/8 befindet sich noch im JDK, sie befinden sich jedoch nicht im Klassenpfad standardmäßig. Die zusätzlichen Java EE-APIs finden Sie im Folgenden Module

Lösung zur Problemumgehung, wenn Java9/10 installiert ist 

  1. Öffnen Sie den sdkmanager in Ihrem Editor.
  2. Hängen Sie DEFAULT_JVM_OPTS an 

Ersetzen

DEFAULT_JVM_OPTS='"-Dcom.Android.sdklib.toolsdir=$APP_HOME"'

Mit diesem

DEFAULT_JVM_OPTS='"-Dcom.Android.sdklib.toolsdir=$APP_HOME" -XX:+IgnoreUnrecognizedVMOptions --add-modules Java.se.ee'
  1. Speichern Sie die Datei und beenden Sie den Editor. Führen Sie dann den Befehl erneut aus.

Für ein Problem mit dem unbekannten Android-Lizenzstatus habe ich versucht, diese Schritte zu lösen:

  1. Öffnen Sie ein Terminal
  2. Wechseln Sie zu Ihrem Android-SDK-Speicherort C:\Users% user%\AppData\Local\Android\Sdk\tools\bin oder ~/Library/Android/sdk/tools/bin

  3. Führen Sie den Befehl aus: ./sdkmanager --license

Verweise

Fehler beim Ausführen von sdkmanager --list (Android SDK) mit Java 9

So lösen Sie Java.lang.NoClassDefFoundError auf: javax/xml/bind/JAXBException in Java 9

3
Juk

Diese Zeile in der GitHub-Problemcommunity hat mein Problem behoben. Hier ist es nur für den Fall, dass es anderen hilft.

@rem Execute sdkmanager

"%Java_EXE%" %DEFAULT_JVM_OPTS% -XX:+IgnoreUnrecognizedVMOptions --add-modules Java.se.ee %Java_OPTS% %SDKMANAGER_OPTS% -classpath "%CLASSPATH%" com.Android.sdklib.tool.sdkmanager.SdkManagerCli %CMD_LINE_ARGS%
3
tdmiller

Ich fand dies Lösung für die Verwendung von JDK 8 (Sie benötigen ein Konto zum Herunterladen!) - Verwenden Sie das eingebettete OpenJDK, das mit Android Studio:

Fügen Sie dies zu Ihrem ~/.profile Oder ähnlichem hinzu:

# Use the JDK embedded with Android Studio for command-line builds
export Java_HOME='/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home'

Befehlszeilen-Builds über gradlew und jedes andere gut erzogene Skript verwenden dann die Version des SDK, das mit Android Studio 2.2+) ausgeliefert wird.

* Mein Mac verwendete immer noch die Standardeinstellung Java 7.

2
Aba

Versuchen Sie Downgrade Ihrer Java version ), dies geschieht, wenn Ihre Systeme Java version nicht mit der von Android kompatibel sind. Einmal Sie haben die Java version geändert, führen Sie einfach flutter doctor akzeptiert die Lizenzen automatisch.

0
Shabeer Ali

hier ist meine Lösung:

  1. installieren Sie SDKMan

    $ curl -s "https://get.sdkman.io" | bash

  2. setzen Sie Ihr bash_profile

    $ source "$HOME/.sdkman/bin/sdkman-init.sh

    $ source ~/.bash_profile

  3. suchen Sie nach Java-SDK, und wählen Sie die gewünschte Version aus

    $ sdk ls Java

    $ sdk install Java 8.0.192-zulu

  4. kopieren Sie die Warnmeldung Ihres Flatterarztes, um den SDK-Manager zu aktualisieren

    $ /Users/YourUserName/Library/Android/sdk/tools/bin/sdkmanager --update

  5. nach 1 ~ 4 wiederholen Sie es 

    $ flutter doctor --Android-licenses

0
ilyi1116

Dasselbe Problem für mich, überprüfen Sie Ihre Java-Version

0
  1. Öffnen Sie Android Studio.
  2. Gehen Sie zu Datei-> Einstellungen. 
  3. Suche nach AndroidSDK.
  4. Aktualisieren Sie Ihre API-Version auf die neueste Version. 
  5. Laden Sie dann Android Studio neu.
0
Mohit Jadav

Öffnen Sie die Datei flutter_console.bat aus dem Flatter-SDK-Stammverzeichnis, und führen Sie den Befehl aus

flutter doctor --Android-licenses

es akzeptiert die Lizenzen von neu heruntergeladenen Updates des Android SDK. Sie müssen es jedes Mal ausführen, wenn Sie das Android SDK herunterladen und aktualisieren.

0
Kiran Maniya