[!] Cadena de herramientas de Android: desarrollo para dispositivos Android (SDK de Android 27.0.3)
• SDK de Android a .. \ Android \ sdk • Ubicación del NDK de Android no configurada (opcional; útil para compatibilidad con perfiles nativos) • Plataforma android-27, herramientas de compilación 27.0.3 • Binario de Java en: C: \ Archivos de programa \ Android \ Android Studio \ jre \ bin \ java • Versión de Java OpenJDK Runtime Environment (compilación 1.8.0_152-release-1024-b02) X Estado de la licencia de Android desconocido.
Recibo un error con Android Sdk cuando ejecuto Flutter doctor, aunque todavía puedo compilar / ejecutar en mi dispositivo. Solo tenía curiosidad sobre cómo solucionar este problema. Creo que tengo descargada la versión más actualizada del sdk de Android, no estoy seguro de qué sucedió porque no tuve este problema la semana pasada.
Nuevos problemas
Después de seguir varias posibles correcciones en los comentarios, ha dado lugar a un nuevo problema. Instalé versiones más nuevas de android sdk P, 8 y 7 junto con un nuevo jdk10. Al parecer, todavía no se ha actualizado lo suficiente.
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: \ users \ username \ appdata \ 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
flutter doctor
. Todavía dijo que la licencia debe ser aceptada. Luego corríflutter doctor --android-licenses
y dijeyes
para todos los acuerdos de licencia. Finalmente el problema se ha ido :). Take away es degradar a JDK 8 solucionará el problemaRespuestas:
Si actualizó el SDK de Android, es posible que las licencias hayan cambiado. Dependiendo de cómo hizo la actualización, es posible que se le haya pedido o no que acepte los cambios, o tal vez simplemente no guarda el hecho de que los aceptó de una manera que flutter puede entender.
Para resolver, intente ejecutar
Esto debería pedirle que acepte las licencias (puede que le pregunte primero, en caso de que simplemente escriba
y
y presione Intro, aunque debería decírselo).Si aún tiene problemas después de hacer eso, podría valer la pena abrir un nuevo error en el repositorio de Flutter Github o agregar un comentario sobre un problema existente como este, ya que puede ser lo que está viendo.
fuente
El error:
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
ocurre porque la versión actual del SDK es incompatible con Java 9.
Entonces, para resolverlo, puede degradar su versión de Java a Java 8, o con una solución alternativa, puede exportar la siguiente opción en su terminal:
Linux:
export JAVA_OPTS='-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'
Ventanas :
set JAVA_OPTS='-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'
Y para que se mantenga, puede exportar JAVA_OPTS en su archivo de perfil en Linux (
.zshrc
,.bashrc
etc.) o agregarlo como un entorno de forma permanente en Windows.Luego, puede escribir el comando flutter o sdkmanager:
Aleteo :
sdkmanager :
y escriba Y cuando sea necesario para aceptar las licencias.
PD. Esto no funciona para Java 11/11 +, que no tiene módulos Java EE. Para esta opción es una buena idea, degradar su versión de Java o esperar una actualización de Flutter .
Ref: JDK 11: Fin del camino para los módulos Java EE
fuente
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
java.se.ee
se elimina en las versiones más nuevas de javaLa solución correcta sería si tiene instalado Android Studio entonces
Android SDK Tools (Obsolete)
flutter doctor
y ahora debería pedirle que lo ejecuteflutter doctor --android-licenses
una vez que ejecute el comando de licencia, acepte todas las licencias presionando y y debería resolver el problemafuente
Estoy escribiendo esto debido a la frustración de instalar flutter ... La mayoría de los problemas son causados por simples problemas de configuración. Siga estos pasos para resolver sus problemas.
PASO 1: LICENCIAS DE ANDROID: licencias de Android, resolverán la mayoría de los casos
Desde que está aquí, ha alcanzado el problema "Estado de licencia de Android desconocido" para la cadena de herramientas de Android, como muchos sugirieron intentarlo
flutter doctor --android-licenses
. Si eres bueno con todos los archivos config. Debería pedir un sí y presionar y y Voila. Pero si muestra unNo se encontró la herramienta sdkmanager de Android
(C\Users\__\local\Android\sdk\tools\bin\sdkmanager)
. Ir al paso dosPASO 2: instalación de SDK Manager desde Android Studio
Abra su Android Studio,
File-> settings->System settings(left tab) ->Android SDK,
vaya aSDK Tool section
en esa página, desmarque ocultar paquetes obsoletos, seleccioneAndroid SDL tools(obsolete)
y presione aplicar.Instalará el SDK y lo confirmará yendo y verificando si esta ruta existe
(C\Users\__\local\Android\sdk\tools\bin\sdkmanager)
PASO 3: Repita 1
Repita el paso 1 después de la instalación en una nueva línea de comando, verifique si está funcionando; de lo contrario, vaya al PASO 4
PASO 4: sdkmanager --update
Le pedirá que actualice el sdk, simplemente ejecute el comando dado en la terminal
C\Users\__\local\Android\sdk\tools\bin\sdkmanager --update
. Si está funcionando, entonces está bien. déjelo terminar y repita el paso 1, de lo contrario, si arroja algunas excepciones comojava.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
, etc., significa que su java no está instalado o no es la versión correcta. Ir al paso siguientePASO 5: JAVA 8.1 y JAVA_HOME ruta.
Instale JAVA 8.1 y establezca la ruta JAVA_HOME. Asegúrese de que sea la versión 8.1 (registre una cuenta gratuita y descargue de Oracle la versión 8.1, recuerde que la versión anterior 11+ no funcionará para flutter
NOTA : por yaniv maymon: si ya tiene Java instalado en su computadora y sdkmanager --update aún no funciona. vaya a la variable de entorno y actualice la ruta "JAVA_HOME" a la carpeta jdk. luego salga del símbolo del sistema, ábralo de nuevo y ejecute el comando de actualización -
PASO 6: Paso final
Después de instalar y configurar la ruta correctamente, ejecute el
C\Users\__\local\Android\sdk\tools\bin\sdkmanager --update
comando en la nueva terminal y funcionaráPASO 7: Vuelva a ejecutar flutter doctor , puede ver que dice que ejecute el comando
flutter doctor --android-licenses
. así que ejecutaflutter doctor --android-licenses
en la terminal y presiona y cuando se te preguntefuente
Estos son los pasos que resuelven mi problema:
flutter doctor --android-licenses
y
para aceptar, este proceso puede ocurrir varias veces. ¡Hecho!fuente
Encontré esta solución para tener que usar JDK 8 (¡necesita una cuenta para descargar ahora!): Use el OpenJDK integrado que viene con Android Studio:
Agregue esto a su
~/.profile
o similar:# Use the JDK embedded with Android Studio for command-line builds export JAVA_HOME='/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home'
Las compilaciones de línea de comandos a través de
gradlew
, y cualquier otro script de buen comportamiento, usarán la versión del SDK que se envía con Android Studio 2.2+.* Mi Mac todavía usaba el Java 7 predeterminado.
fuente
Este también fue mi problema, al igual que el # 16025
Para una excepción en el subproceso "main" java.lang.NoClassDefFoundError: javax / xml / bind / annotation / XmlSchema Este problema parece ocurrir normalmente cuando ha instalado Java 9 antes. Por cierto, no es compatible con android-sdk, intente eliminar Java 9 JDK si aún existe.
Solución alternativa si tiene Java9 / 10 instalado
Reemplazar
DEFAULT_JVM_OPTS='"-Dcom.android.sdklib.toolsdir=$APP_HOME"'
Con este
DEFAULT_JVM_OPTS='"-Dcom.android.sdklib.toolsdir=$APP_HOME" -XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'
Para un problema de estado de licencia de Android desconocido, he intentado resolverlo siguiendo estos pasos:
Vaya a la ubicación de su SDK de Android C: \ Users% user% \ AppData \ Local \ Android \ Sdk \ tools \ bin o ~ / Library / Android / sdk / tools / bin
Ejecute el comando: ./sdkmanager --license
Referencias
Error al ejecutar sdkmanager --list (Android SDK) con Java 9
Cómo resolver java.lang.NoClassDefFoundError: javax / xml / bind / JAXBException en Java 9
fuente
Esta línea proporcionada en la comunidad de problemas de GitHub solucionó mi problema, aquí está en caso de que ayude a alguien más.
@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%
fuente
aquí está mi solución:
instalar SDKMan
$ curl -s "https://get.sdkman.io" | bash
configurando su bash_profile
$ source "$HOME/.sdkman/bin/sdkman-init.sh
$ source ~/.bash_profile
busque java sdk y seleccione desea instalar la versión
$ sdk ls java
$ sdk install java 8.0.192-zulu
copie su mensaje de advertencia de flutter doctor para actualizar sdkmanager
$ /Users/YourUserName/Library/Android/sdk/tools/bin/sdkmanager --update
después de 1 ~ 4, rehacerlo
$ flutter doctor --android-licenses
fuente
Simplemente instale la herramienta de línea de comandos sdk (más reciente) a continuación en Android Studio.
fuente
flutter doctor --android-licenses
MacOS 10.15: Android Studio 3.5.1:
La solución que me funcionó fue usar la herramienta Java Environment
jenv
(instalada a través de homebrew ). Esta herramienta cambia el $ JAVA_HOME cuando se cambia entre versiones de Java.En mi caso, tengo varias versiones de Java instaladas y la versión global actual en uso era la predeterminada. También encontré necesario comentar la variable de entorno $ JAVA_HOME en mi
.bash_profile
al usar esta herramienta.En Terminal, entré
jenv global 1.8
para ejecutar java 1.8 en lugar de una versión posterior (tengo varias versiones instaladas).Después de esto:
flutter doctor --android-licenses
O
sdkmanager --licenses
ambos funcionan bien.
fuente
Consulte-- https://robbinespu.gitlab.io/blog/2020/03/03/flutter-issue-fixed-android-license-status-unknown-on-windows/
Así que aquí está la solución, abra su administrador de SDK y luego desmarque
Hide Obsolete Packages
Ahora verá que
Android SDK Tools (Obsolete) 26.1.1
aparece. Marque ese paquete yapply button
luego presione el botón Aceptar. descargará sdk. luegorestart
Android StudioBien, ahora si corres
flutter doctor
, deberías obtener un resultado positivo como se muestra a continuaciónPS D:\Workplace\flutter_projects> flutter doctor Doctor summary (to see all details, run flutter doctor -v): [√] Flutter (Channel stable, v1.12.13+hotfix.8, on Microsoft Windows [Version 10.0.18363.657], locale en-MY) [√] Android toolchain - develop for Android devices (Android SDK version 29.0.3) [√] Android Studio (version 3.6) [√] VS Code (version 1.42.1) [√] Connected device (1 available) • No issues found! PS D:\Workplace\flutter_projects> flutter doctor --android-licenses -v All SDK package licenses accepted.======] 100% Computing updates...
Ejecutar
flutter doctor --android-licenses
e ingresar Y cuando se le solicitesi es necesario, podemos descargar el paquete manualmente aquí https://dl.google.com/android/repository/sdk-tools-windows-4333796.zip (para usuarios de Windows). Espero que este tutorial ayude a las personas que buscan una solución
fuente
Para aquellos de ustedes que están en Linux y siguen recibiendo errores durante
flutter doctor --android-licenses
.Seguía recibiendo la advertencia de no se podía crear la configuración cuando intentaba aceptar licencias, que solucioné especificando la ubicación del SDK:
Sdkmanager luego imprimió: se aceptaron todas las licencias del paquete SDK.
Sin embargo, Flutter siguió dando el error desconocido del estado de la licencia de Android . E intentar llamar
flutter doctor --android-licenses
me daría lo mismo , no podría crear configuraciones error de que solía obtener.Para solucionar esto, edité el
sdkmanager
script ubicado en $ {la ubicación de tus herramientas de Android} / tools / bin / y cambié la última línea de:exec "$JAVACMD" "$@"
A:
exec "$JAVACMD" "$@" --sdk_root=/home/adel/bin/android-sdk
Esto haría que Flutter llamara a sdkmanager mientras pasaba el argumento sdk_root necesario, una llamada final para
flutter doctor --android-licenses
solucionar el problema.No tuve que usar Java 8.
fuente
abra el archivo flutter_console.bat de la carpeta raíz del SDK de flutter y ejecute el comando
aceptará las licencias de las actualizaciones recién descargadas de Android SDK. Debe ejecutarlo cada vez que descargue y actualice el SDK de Android.
fuente
Intente degradar su versión de Java , esto sucederá cuando la versión de Java de su sistema no sea compatible con la de Android. Una vez que haya cambiado la versión de Java, simplemente ejecute
flutter doctor
, automáticamente aceptará las licencias.fuente
Bajé mi versión de Java a 1.8 y se resolvió, aquí está el enlace para descargar JDK8
Ejecute el siguiente comando después de instalar JDK8
fuente
Mi entorno: Windows 10 de 64 bits, OpenJDK 14.0.2
Los errores iniciales son los indicados anteriormente.
El error se resolvió después
fuente
En mi caso faltaba el problema
Android SDK Command-line tools
fuente
El mismo problema para mí, verifique su versión de Java al menos debe ser 1.8
fuente
AndroidSDK
.fuente
Para alguien que todavía se enfrenta al problema :
como respondieron a continuación Tommie C, Aba y algunas otras personas, pero puede que no sea lo suficientemente claro como lo encontré.
Intente instalar java 1.8 manualmente como se describe aquí en windows / linux: [ https://www3.ntu.edu.sg/home/ehchua/programming/howto/JDK_Howto.html]
y establezca la variable $ JAVA_HOME (ruta jdk).
En Windows, configure la ruta jdk ($ JAVA_HOME): [ ¿Cómo configurar java_home en Windows 7? .
En Linux: [ /ubuntu/175514/how-to-set-java-home-for-java] .
Luego ejecute
flutter doctor --android-licenses
y acepte todas las licencias. Espero eso ayude.fuente
Encontré esta solución. Descargué JDK 8. Luego agrego el nombre de la ruta del archivo jdk de descarga de JAVA_HOME en las variables de usuario en la variable de entorno.
fuente
Me enfrenté al mismo problema, como se mencionó anteriormente, probé estos.
Esto es lo que funcionó para mí:
flutter doctor --android-licenses
y seleccionary
para las indicacionesflutter doctor
y todo saldrá bien !!!!fuente
Estaba enfrentando un problema. La
tools
carpeta también faltaba en laAndroid SDK
carpeta. Creo que latools
carpeta aparece solo después de la instalaciónAndroid SDL tools(obsolete
). Esta opción no estaba disponible para mí.Solución: Actualicé de la
Java
versión 8 a la versión 12 y pude instalar las herramientas. Es posible que aún obtenga el errorSome Android licenses not accepted. To resolve this, run: flutter doctor --android-licenses
al dar el comandoflutter doctor -v
. Ejecute el comandoflutter doctor --android-licenses
, las licencias se revisarán cuando haga clicyes
cada vez que aparezca esta preguntaAccept? (y/N):
Ojalá ayude a alguien.
fuente
Si usa barrica casera , puede hacer
fuente
Para la gente de Windows, una solución a corto plazo es cambiar a JDK8. Con suerte, flutter solucionará el problema pronto para que el SDK de Android funcione con> JDK8.
fuente
Después de hacer muchos análisis para mi Ubuntu 20.04, encontré la solución
para mí, el error
/home/rk/Android/Sdk/tools/bin/sdkmanager
era que faltaba el permiso de escritura .chmod +w home/rk/Android/Sdk/tools/bin/sdkmanager
Luego ejecute el siguiente comando.
flutter doctor --android-licenses
procesa automáticamente las licencias.
fuente
Siga estos sencillos pasos.
fuente
ADVERTENCIA : Esta respuesta es útil si tiene problemas con la variable de entorno JAVA_HOME y la dirección de eso. Si no tiene este problema, no debe probar esta solución.
Si tiene este error y lo intentó con flutter doctor --android-license o sdkmanager --licenses y tuvo un problema con su variable de entorno JAVA_HOME, entonces debe leer esto.
Tengo una hormiga MacOS Catalina. Podría resolver este problema con éxito con los siguientes pasos:
Por favor, avíseme si tiene dudas.
fuente
Esto es lo que hice para solucionar mi problema. Tenga en cuenta que no es necesario que desinstale su copia anterior de Android Studio / SDK. Android Studio se encargará de eso mientras instalas la última versión.
fuente