[!] Conjunto de ferramentas Android - desenvolver para dispositivos Android (Android SDK 27.0.3) >> • Android SDK a .. \ Android \ sdk • Localização Android NDK não configurada (opcional; útil para suporte nativo de criação de perfil) • Plataforma android-27, build-tools 27.0.3 • Binário Java em C: \ Arquivos de programas \ Android \ Android Studio \ jre \ bin \ java • Versão Java OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b02) X Status da licença do Android desconhecido.
Estou recebendo um erro com o Android SDK quando executo o Flutter doctor, embora ainda possa construí-lo / executá-lo em meu dispositivo. Eu só estava curioso para saber como resolver esse problema. Acredito ter baixado a versão mais atualizada do Android SDK, não tenho certeza do que aconteceu porque não tive esse problema na semana passada.
## Novos problemas Depois de seguir várias correções possíveis nos comentários, surgiu um novo problema. Instalei versões mais recentes do android sdk P, 8 e 7 junto com um novo jdk10. Aparentemente, ainda não foi atualizado o 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
. Ele ainda disse que a licença precisa ser aceita. Então eu corriflutter doctor --android-licenses
e disseyes
para todos os contratos de licença. Finalmente o problema desapareceu :). Take away estáRespostas:
Se você atualizou o SDK do Android, as licenças podem ter mudado. Dependendo de como você fez a atualização, você pode ou não ter sido solicitado a aceitar as alterações, ou talvez isso simplesmente não guarde o fato de que você as aceitou de uma forma que o flutter possa entender.
Para resolver, tente executar
flutter doctor --android-licenses
Isso deve solicitar que você aceite as licenças (pode solicitar primeiro, no caso, basta digitar
y
e pressionar enter - embora deva dizer isso a você).Se você ainda tiver problemas depois de fazer isso, pode valer a pena abrir um novo bug no repositório Flutter Github ou adicionar um comentário sobre um problema existente como este , pois pode ser o que você está vendo.
fonte
O erro:
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
está ocorrendo porque a versão atual do SDK é incompatível com o Java 9.
Então, para resolver isso, você pode fazer o downgrade de sua versão java para Java 8 ou, com uma solução alternativa, você pode exportar a seguinte opção em seu terminal:
Linux:
export JAVA_OPTS='-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'
Windows :
set JAVA_OPTS='-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'
E para fazê-lo ficar, você pode exportar os JAVA_OPTS em seu arquivo de perfil no Linux (
.zshrc
,.bashrc
e etc.) ou adicionar como um ambiente permanentemente no Windows.Em seguida, você pode digitar o comando flutter ou sdkmanager:
Flutter :
flutter doctor --android-licenses
sdkmanager :
sdkmanager --licenses
e digite Y quando necessário para aceitar as licenças.
ps. Isso não funciona para Java 11/11+, que não possui módulos Java EE. Para esta opção é uma boa ideia, fazer downgrade de sua versão Java ou esperar por uma atualização do Flutter .
Ref: JDK 11: Fim da estrada para módulos Java EE
fonte
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
java.se.ee
foi removido nas versões mais recentes do javaA solução certa seria se você tiver o Android Studio instalado,
Android SDK Tools (Obsolete)
flutter doctor
e ele agora deverá solicitar que você executeflutter doctor --android-licenses
uma vez que você execute o comando de licença aceite todas as licenças pressionando y e deverá resolver o problemafonte
Estou escrevendo isso por causa da frustração em instalar o flutter ... A maioria dos problemas é causada por problemas de configuração simples. Siga estas etapas para resolver seus problemas.
ETAPA 1: LICENÇAS ANDROID - licenças android, resolverá a maioria dos casos
Uma vez que você está aqui, você atingiu o problema de "Status de licença desconhecido do Android" para a cadeia de ferramentas do Android, como muitos sugeriram tentar
flutter doctor --android-licenses
. Se você está bem com toda a configuração. Deve pedir um sim e pressionar y e Voila. Mas se mostrar umFerramenta sdkmanager do Android não encontrada
(C\Users\__\local\Android\sdk\tools\bin\sdkmanager)
. Vá para a etapa doisETAPA 2: instalação do SDK Manager do Android Studio
Abra o Android Studio,
File-> settings->System settings(left tab) ->Android SDK,
vá paraSDK Tool section
nessa página, desmarque ocultar pacotes obsoletos, selecioneAndroid SDL tools(obsolete)
e pressione aplicar.Ele instalará o SDK e você o confirmará indo e verificando se este caminho existe
(C\Users\__\local\Android\sdk\tools\bin\sdkmanager)
PASSO 3: Repita 1
Repita a etapa 1 após a instalação em uma nova linha de comando, verifique se está funcionando, caso contrário, vá para a etapa 4
PASSO 4: sdkmanager --update
Ele irá pedir para você atualizar o SDK, basta executar o comando fornecido no terminal
C\Users\__\local\Android\sdk\tools\bin\sdkmanager --update
. Se estiver funcionando, então é legal. deixe-o terminar e repita o passo 1, caso contrário, se ele está lançando algumas exceções comojava.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
etc, significa que seu java não está instalado ou não é a versão correta. Vá para a próxima etapaPASSO 5: caminho JAVA 8.1 e JAVA_HOME.
Instale o JAVA 8.1 e defina o caminho JAVA_HOME. Certifique-se de que é a versão 8.1 (registre-se gratuitamente e baixe do oracle a versão 8.1, lembre-se acima de 11+ não funcionará para flutter
NOTA : por yaniv maymon: yaniv maymon se você já tem o Java instalado no seu computador e o sdkmanager --update ainda não está funcionando. acesse a variável de ambiente e atualize o caminho "JAVA_HOME" para a pasta jdk. em seguida, saia do prompt de comando, abra-o novamente e execute o comando de atualização -
ETAPA 6: Etapa final
Após instalar e configurar o caminho corretamente, execute o
C\Users\__\local\Android\sdk\tools\bin\sdkmanager --update
comando no novo terminal e ele funcionaráPASSO 7: Execute novamente o flutter doctor , Você pode vê-lo dizendo para executar o comando
flutter doctor --android-licenses
. então executeflutter doctor --android-licenses
no terminal e pressione y quando solicitadofonte
Aqui estão as etapas que resolvem meu problema:
flutter doctor --android-licenses
y
para aceitar, este processo pode ocorrer várias vezes. Feito!fonte
Eu encontrei esta solução para ter que usar o JDK 8 (você precisa de uma conta para fazer o download agora!) - use o OpenJDK integrado que vem com o Android Studio:
Adicione isto ao seu
~/.profile
ou semelhante:# Use the JDK embedded with Android Studio for command-line builds export JAVA_HOME='/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home'
As compilações de linha de comando via
gradlew
e qualquer outro script bem comportado usarão a versão do SDK que acompanha o Android Studio 2.2+.* Meu Mac ainda estava usando o Java 7 padrão.
fonte
Basta instalar a ferramenta de linha de comando sdk (mais recente) a seguir no android studio.
fonte
flutter doctor --android-licenses
Este também foi o meu problema, mesmo que # 16025
Para uma exceção no thread "main" java.lang.NoClassDefFoundError: javax / xml / bind / annotation / XmlSchema Este problema parece geralmente ocorrer quando você instala o Java 9 antes. BTW, não é compatível com android-sdk, tente remover o Java 9 JDK se ainda existir.
Solução para contornar se você tiver Java9 / 10 instalado
Substituir
DEFAULT_JVM_OPTS='"-Dcom.android.sdklib.toolsdir=$APP_HOME"'
Com este
DEFAULT_JVM_OPTS='"-Dcom.android.sdklib.toolsdir=$APP_HOME" -XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'
Para o problema desconhecido de status de licença do Android, tentei resolver por estas etapas:
Vá para o local do Android SDK C: \ Users% user% \ AppData \ Local \ Android \ Sdk \ tools \ bin ou ~ / Library / Android / sdk / tools / bin
Execute o comando: ./sdkmanager --license
Referências
Falha ao executar sdkmanager --list (Android SDK) com Java 9
Como resolver java.lang.NoClassDefFoundError: javax / xml / bind / JAXBException em Java 9
fonte
Esta linha fornecida na comunidade de problemas do GitHub corrigiu meu problema, aqui está apenas no caso de ajudar mais alguém.
@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%
fonte
aqui está minha solução:
instalar SDKMan
$ curl -s "https://get.sdkman.io" | bash
configurando seu bash_profile
$ source "$HOME/.sdkman/bin/sdkman-init.sh
$ source ~/.bash_profile
encontre java sdk e selecione deseja instalar a versão
$ sdk ls java
$ sdk install java 8.0.192-zulu
copie sua mensagem de aviso de flutter doctor para atualizar o sdkmanager
$ /Users/YourUserName/Library/Android/sdk/tools/bin/sdkmanager --update
após 1 ~ 4, refaça
$ flutter doctor --android-licenses
fonte
MacOS 10.15: Android Studio 3.5.1:
A solução que funcionou para mim foi usar a ferramenta Java Environment
jenv
(instalada via homebrew ). Esta ferramenta muda o $ JAVA_HOME quando se alterna entre as versões java.No meu caso, tenho várias versões do Java instaladas e a versão global atual em uso era a padrão. Também achei necessário comentar a variável de ambiente $ JAVA_HOME em meu
.bash_profile
ao usar esta ferramenta.No Terminal, digitei
jenv global 1.8
para obter o java 1.8 em execução em vez de uma versão posterior (tenho várias versões instaladas).Depois disso:
flutter doctor --android-licenses
OU
sdkmanager --licenses
ambos funcionam bem.
fonte
Consulte-- https://robbinespu.gitlab.io/blog/2020/03/03/flutter-issue-fixed-android-license-status-unknown-on-windows/
Então, aqui está a solução, abra seu gerenciador de SDK e desmarque
Hide Obsolete Packages
Agora você verá que
Android SDK Tools (Obsolete) 26.1.1
aparece. Marque esse pacote e clique noapply button
botão OK. ele fará o download do SDK. entãorestart
Android StudioLegal, agora se você correr
flutter doctor
, deve obter um resultado positivo conforme abaixoPS 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...
Corre
flutter doctor --android-licenses
e digite Y quando for solicitadose necessário, podemos baixar o pacote manualmente aqui https://dl.google.com/android/repository/sdk-tools-windows-4333796.zip (para usuário do Windows). Espero que este tutorial ajude as pessoas que procuram soluções
fonte
Para aqueles que estão no Linux e continuam recebendo erros durante
flutter doctor --android-licenses
.Continuei recebendo o aviso de não foi possível criar configurações ao tentar aceitar licenças, o que corrigi especificando o local do SDK:
sdkmanager --sdk_root=/home/adel/bin/android-sdk --licenses
Sdkmanager então impresso: todas as licenças de pacote SDK aceitas.
No entanto, Flutter continuou dando ao status de licença do Android um erro desconhecido . E tentar ligar
flutter doctor --android-licenses
me daria o mesmo erro não poderia criar configurações que eu costumava obter.Para corrigir isso, editei o
sdkmanager
script localizado em $ {your android tools location} / tools / bin / e alterei a última linha de:exec "$JAVACMD" "$@"
Para:
exec "$JAVACMD" "$@" --sdk_root=/home/adel/bin/android-sdk
Isso faria o Flutter chamar sdkmanager enquanto passava o argumento sdk_root necessário, uma chamada final para
flutter doctor --android-licenses
corrigir o problema.Não precisei usar o Java 8.
fonte
abra o arquivo flutter_console.bat da pasta raiz flutter SDK e execute o comando
flutter doctor --android-licenses
ele aceitará as licenças de atualizações recém-baixadas do Android SDK. Você precisa executá-lo sempre que fizer download e atualizar o SDK do Android.
fonte
Tente fazer o downgrade da sua versão java , isso acontecerá quando a versão do seu sistema java não for compatível com a versão do android. Depois de alterar a versão do java, basta executá-
flutter doctor
lo e ele aceitará automaticamente as licenças.fonte
Eu fiz downgrade da minha versão Java para 1.8 e está resolvido, aqui está o link para baixar o JDK8
Execute o seguinte comando após instalar o JDK8
flutter doctor --android-licenses
fonte
Meu ambiente: Windows 10 64 bits, OpenJDK 14.0.2
Os erros iniciais são os relatados acima.
O erro foi resolvido após
fonte
No meu caso faltou o problema
Android SDK Command-line tools
fonte
O mesmo problema para mim, verifique sua versão java pelo menos deve ser 1.8
fonte
AndroidSDK
.fonte
Para alguém que ainda está enfrentando o problema :
Conforme respondido abaixo por Tommie C, Aba e algumas outras pessoas, mas pode não estar claro o suficiente como eu achei.
Tente instalar o java 1.8 manualmente conforme descrito aqui no windows / linux: [ https://www3.ntu.edu.sg/home/ehchua/programming/howto/JDK_Howto.html]
e configuração variável $ JAVA_HOME (caminho jdk).
No Windows, defina o caminho jdk ($ JAVA_HOME): [ Como definir java_home no Windows 7? .
No linux: [ /ubuntu/175514/how-to-set-java-home-for-java] .
Em seguida, execute
flutter doctor --android-licenses
e aceite todas as licenças. Espero que ajude.fonte
Encontrei esta solução. Baixo o JDK 8. Em seguida, adiciono o download do nome do caminho do arquivo jdk de JAVA_HOME nas variáveis de usuário na variável de ambiente.
fonte
Eu enfrentei o mesmo problema, como mencionei acima, tentei estes.
Isto é o que funcionou para mim:
flutter doctor --android-licenses
e selecioney
para os promptsflutter doctor
e tudo vai ficar bem !!!!fonte
Eu estava enfrentando um problema. A
tools
pasta também estava faltando naAndroid SDK
pasta. Eu acredito que atools
pasta só aparece após a instalaçãoAndroid SDL tools(obsolete
). Esta opção não estava disponível para mim.Solução: Eu atualizei
Java
da versão 8 para a versão 12 e consegui instalar as ferramentas. Você ainda pode obter o erroSome Android licenses not accepted. To resolve this, run: flutter doctor --android-licenses
ao fornecer o comandoflutter doctor -v
. Execute o comandoflutter doctor --android-licenses
, as licenças serão revisadas quando você clicaryes
sempre que esta pergunta aparecerAccept? (y/N):
Espero que ajude alguém.
fonte
Se você usar barril caseiro , você pode fazer
brew cask install android-sdk mkdir ~/Library/Android/sdk/tools ln -s /usr/local/bin/ ~/Library/Android/sdk/tools/bin flutter doctor --android-licenses
fonte
Para os usuários do Windows, uma solução de curto prazo é fazer o downgrade para JDK8. Esperançosamente, o flutter corrigirá o problema em breve para que o Android SDK funcione com o> JDK8.
fonte
Depois de fazer muitas análises para meu Ubuntu 20.04, encontrei a solução
para mim, o erro
/home/rk/Android/Sdk/tools/bin/sdkmanager
estava faltando permissão de gravação .chmod +w home/rk/Android/Sdk/tools/bin/sdkmanager
Em seguida, execute o comando abaixo.
flutter doctor --android-licenses
ele processa automaticamente as licenças.
fonte
Siga estas etapas simples.
fonte
ATENÇÃO : esta resposta é útil se você tiver problemas com a variável de ambiente JAVA_HOME e a direção disso. Se você não tiver esse problema, não deve tentar esta solução.
Se você teve esse erro e tentou com flutter doctor --android-licences ou sdkmanager --licenses e teve um problema com sua variável de ambiente JAVA_HOME, então você deve ler isto.
Eu tenho uma formiga MacOS Catalina que poderia resolver esse problema com sucesso com as próximas etapas:
Por favor, deixe-me saber se você tiver dúvidas.
fonte
Aqui está o que fiz para corrigir meu problema. Observe que você não precisa desinstalar sua cópia antiga do Android Studio / SDK. O Android Studio cuidará disso enquanto você instala a versão mais recente.
fonte