flutter doctor licenses android-licenses fornisce un errore java
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:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 5 more
Ottengo questo errore sopra durante l'esecuzione di flutter doctor licenses android-licenses. Qualcuno sa perché questo sta accadendo e come posso risolverlo? Lo sto già eseguendo sulla console flutter.
6 answers
InstallazioneAndroid SDK Strumenti da riga di comando daAndroid SDK Manager ha fatto il lavoro per me.
- Apri Strumenti > Gestore SDK
- Da sinistra scegliere, Aspetto e comportamento > Impostazioni di sistema > Android SDK
- Selezionare Strumenti SDK dal menu in alto
- ControllareAndroid SDK Strumenti della riga di comando e fare clic su 'applica'.
Installare gli strumenti della riga di comando di Android SDK da Android SDK Manager ha risolto il mio problema.
- Apri Strumenti - > SDK Manager
- Aspetto e comportamento > Impostazioni di sistema > Android SDK
- Selezionare Strumenti SDK dal menu in alto. Controllare gli strumenti della riga di comando di Android SDK e fare clic su "Applica"
Su Linux
Android SDK
funziona solo con JDK 8
quindi disinstalla la versione corrente di JDK
.
Passato il comando e premere tab per il completamento automatico, rimuovere tutte le cose che vi mostra che inizia con openjdk-
sudo apt remove openjdk-
E ora installa JDK 8
sudo apt install openjdk-8-jdk
Raccomando di cancellare le impostazioni di android-studio-dir e Android-sdk e let flutter rileva automaticamente il loro percorso: questo funziona per me .
flutter config --android-studio-dir="" flutter config --android-sdk=""
Sembra che tu stia ricevendo un'eccezione JDK, succede quando non hai JAVA_HOME impostato sulle variabili di sistema O hai quasi impostato il JDK ma nella cartella sbagliata O stai cercando di eseguire il Gestore SDK (che ti permette di accettare le licenze Android) con il JDK sbagliato.
In caso di JDK 9 o superiore:
In realtà, Android SDK Manager funziona solo con Gradle compilato sulla versione di JDK 8 per lo sviluppo di Android , quindi, se hai una versione JDK più recente già impostata su variabili di sistema, considera di downgrade alla versione JDK 8.
Questa versione funziona bene per me: https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
Nel caso di JDK 8 già installato
Se hai estratto manualmente la cartella JDK in una directory, forse l'hai impostata "sbagliata". Voglio dire: hai indicato il modo sbagliato nella cartella bin Java, ma è ancora opera. Devi impostare JAVA_HOME come radice di JDK, esempio: Nella cartella zippata JDK, devi estrarla e puntare la variabile di sistema nella cartella decompressa, no direttamente nella directory bin, devi puntare JAVA_HOME come variabile di sistema e dichiarare la cartella bin come eseguibile.
Esempi:
Linux
Nel file di configurazione della shell:
export JAVA_HOME="/home/user/jdk1.8.0_261"
export PATH="$PATH:$JAVA_HOME/bin"
Finestre
Nel gestore delle variabili di ambiente:
Imposta un nuovo VARIABILE DI SISTEMA denominata JAVA_HOME
Quindi, modificare la variabile PATH e aggiungere un nuovo registro ad esso:
%JAVA_HOME%\bin
In realtà, non so davvero come gestire JDK in macOS, se questo è il tuo sistema operativo, scusa: (
Spero che aiuti!
La mia soluzione era:
Ho avuto Android SDK Build-Tools, Android Emulator e Android SDK Platform-Tools installati. Inoltre avevo JAVA_HOME
variabile nelle variabili di ambiente.
Così ho deciso di disinstallare Android SDK Build-Tools, Android Emulator e Android SDK Platform-Tools e installarli di nuovo. Inoltre, ho cancellato JAVA_HOME
variabile. E dopo queste operazioni eseguo flutter doctor --android-licenses
nel terminale. E in qualche modo ha funzionato.