Eu fiz o seguinte comentário:
./gradlew app:installDebug
apenas para encontrar o log:
FAILURE: Build failed with an exception.
* What went wrong:
Could not determine java version from '11.0.2'.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
* Get more help at https://help.gradle.org
Minha versão do gradle é 5.1.1:
------------------------------------------------------------
Gradle 5.1.1
------------------------------------------------------------
Build time: 2019-01-10 23:05:02 UTC
Revision: 3c9abb645fb83932c44e8610642393ad62116807
Kotlin DSL: 1.1.1
Kotlin: 1.3.11
Groovy: 2.5.4
Ant: Apache Ant(TM) version 1.9.13 compiled on July 10 2018
JVM: 11.0.2 (Oracle Corporation 11.0.2+9-LTS)
OS: Mac OS X 10.13.6 x86_64
Não tenho certeza de como proceder (tentei fazer upgrade / downgrade, mas nada funcionou até agora).
ATUALIZAÇÃO: quando corri ./gradlew --version
, obtive o seguinte:
FAILURE: Build failed with an exception.
* What went wrong:
Could not determine java version from '11.0.2'.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
* Get more help at https://help.gradle.org
Meu gradle-wrapper.properties
contém:
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-rc-1-all.zip
gradle --version
ou./gradlew --version
? Projetos baseados em Gradle geralmente usam um invólucro para tornar mais fácil para diferentes desenvolvedores usarem a mesma versão do Gradle para construir o projeto; isso também torna as compilações mais estáveis.gradle --version
Respostas:
Existem dois aplicativos Gradle diferentes em seu sistema.
o Gradle de todo o sistema
Este aplicativo é invocado por
gradle (arguments)
.o gradle-wrapper
O gradle-wrapper é específico para cada projeto e só pode ser chamado dentro do diretório do projeto, usando o comando
./gradlew (arguments)
.A versão do gradle para todo o sistema é 5.1.1 (como o OP explicado nos comentários, executando o comando
gradle --version
retornou a versão 5.1.1).No entanto, a falha é o resultado de uma chamada para o gradle-wrapper (
./gradlew
). Você poderia verificar a versão do gradle wrapper do seu projeto? Para fazer isso, execute./gradlew --version
dentro da pasta do seu projeto, no diretório onde estão os arquivos gradlew e gradlew.bat.Atualização 1:
como a execução
./gradlew --version
falhou, você pode verificar manualmente a versão do seu wrapper abrindo o arquivo:com um editor de texto simples. O "DistributionUrl" dentro deve nos dizer qual é a versão do wrapper.
Atualização 2: de acordo com a pergunta atualizada do OP, a versão do gradle-wrapper é 4.1RC1.
Gradle adicionou suporte para JDK 11 no Gradle 5.0 . Portanto, como o 4.1RC não suporta o JDK 11, isso é definitivamente um problema.
A maneira óbvia seria atualizar o gradle-wrapper do seu projeto para a versão 5.0. No entanto, antes de atualizar, tente executar
gradle app:installDebug
. Isso usará o Gradle instalado em todo o sistema, cuja versão é 5.1.1 e suporta Java 11. Veja se isso funciona. Em caso afirmativo, seu buildscript (arquivo build.gradle) não é afetado por nenhuma alteração significativa entre v.4.1RC1 e v.5.1.1 e você pode atualizar seu wrapper executando a partir da linha de comando dentro da pasta do seu projeto:gradle wrapper --gradle-version=5.1.1
[ *].Se
gradle app:installDebug
falhar na execução correta, talvez você precise atualizar o buildscript do Gradle. Para atualização de v.4.1RC1 para 5.1.1, o projeto Gradle fornece um guia ( 1 , 2 ) com alterações importantes e recursos obsoletos entre versões menores, para que você possa atualizar gradualmente para a versão mais recente.Como alternativa, se por algum motivo você não puder ou não quiser atualizar seu buildscript do Gradle, você sempre pode escolher fazer o downgrade de sua versão do Java para uma que seja compatível com Gradle 4.1RC1.
[*] Como corretamente apontado em outra resposta de @lupchiazoem, use
gradle wrapper --gradle-version=5.1.1
(e não./gradlew
como eu havia postado originalmente por engano). O motivo é que o Gradle é executado em Java. Você pode atualizar seu gradle-wrapper usando qualquer distribuição Gradle funcional, seja o Gradle instalado em todo o sistema ou o próprio gradle-wrapper. No entanto, neste caso, seu wrapper não é compatível com a versão Java instalada, então você precisa usar o Gradle para todo o sistema (também conhecido comogradle
e não./gradlew
).fonte
gradle wrapper --gradle-version=5.0
? Substitua a versão 5.0 pela versão desejada, acho que agora a mais recente é a 5.4Como
distributionUrl
ainda está apontando para uma versão mais antiga, atualize o wrapper usando:gradle wrapper --gradle-version 5.1.1
Nota: Use
gradle
e nãogradlew
fonte
gradle/wrapper/gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
versão 6 com JDK12 não parece funcionar. 5.1.1 funciona bem, obrigado.No meu caso, a
JAVA_HOME
variável foi definida como/usr/lib/jvm/jdk-11.0.2/
. Foi suficiente desconfigurar a variável assim:$ export JAVA_HOME=
fonte
GRADLE_HOME
foi atualizado (para 5.4.1``), mas não a versão do gradle (ainda apontando para a versão mais antiga4.3
) que é estranho, mas reiniciar o terminal funcionou bem. algo estranho comsource ~/.bash_profile
Atualizar
gradle/wrapper/gradle-wrapper.properties
com a seguinte versão corrigiu para mim:fonte
tl; dr : downgrade java executando
update-alternatives
Minha versão do gradle do sistema era 4.4.1 e a versão gradle wrapper era 4.0. Depois de executar o comando dado por várias outras respostas:
Eu ainda tive o mesmo erro:
Acontece que o java 11 não era compatível até o gradle 4.8, e meus repositórios de software só tinham 4.4.1. (Além disso, atualizar para a versão mais recente do Gradle pode ser incompatível com o pacote que eu estava tentando compilar.)
A resposta foi fazer o downgrade do java. Na verdade, meu sistema já tinha o java8 instalado e foi fácil alternar entre as versões do java executando este comando e seguindo as instruções:
fonte
Como a versão wrapper não suporta 11+, você pode fazer truques simples para enganar a versão mais recente do InteliJ para sempre.
https://blog.jetbrains.com/idea/2015/05/intellij-idea-14-1-4-eap-141-1192-is-available/
Ou se você quiser trabalhar com java 11+, você simplesmente tem que atualizar a versão do wrapper para 4.8+
fonte
Para resumir a resposta longa, atualize seu
gradlew
usando agradle
ferramenta do sistema . Observe que a atualização abaixo funciona mesmo se agradle
versão do seu sistema for< 5
.fonte
Eu tive o mesmo problema aqui. No meu caso, preciso usar uma versão antiga do JDK e estou usando o sdkmanager para gerenciar as versões do JDK, então mudei a versão da máquina virtual para 1.8.
Depois disso, o aplicativo é executado conforme o esperado aqui.
fonte
Eu tive o mesmo problema. Atualizar para o gradle 5.0 funcionou para mim.
Este link fornece etapas detalhadas sobre como instalar o gradle 5.0: https://linuxize.com/post/how-to-install-gradle-on-ubuntu-18-04/
fonte
Eu tive um problema semelhante: meu padrão
gradle wrapper
era a versão 4.x, enquanto o suporte para versões superiores do Java foi adicionado no Gradle 5.Eu atualizei meu
gradlew
conforme descrito aqui: https://docs.gradle.org/current/userguide/gradle_wrapper.html#sec:upgrading_wrapperTLTD:
fonte
Resolvi isso clicando em Arquivo -> Estrutura do projeto e, em seguida, alterei o local do JDK para usar JDK incorporado (recomendado)
fonte
Eu tive um problema semelhante. Eu apaguei estes:
conteúdo da pasta de construção.
então reconstrua.
* NÃO SE ESQUEÇA DE FAZER O BACKUP DO SEU PROJETO PRIMEIRO *
fonte
Encontrei o mesmo problema no Ubuntu 18.04.3 LTS. No meu caso, o apt instalou o gradle versão 4.4.1. A versão java já instalada era 11.0.4
A mensagem de construção que recebi foi
Na época, a maioria dos documentos on-line fazia referência à versão 5.6 do Gradle, então fiz o seguinte:
Então, repeti a inicialização do projeto (usando "gradle init" com os padrões). Depois disso, "./gradlew build" funcionou corretamente.
Posteriormente, li um comentário sobre uma mudança no formato da saída de "java --version" que causou a quebra do gradle, o que foi corrigido em uma versão posterior do gradle.
fonte
No meu caso, eu estava tentando construir e obter o APK para um projeto Unity 3D antigo (para que eu possa jogar no meu telefone Android). Eu estava usando a versão mais recente do Android Studio e todos os pacotes SDK que consegui baixar via SDK Manager no Android Studio. Pacotes SDK estavam localizados em
E a mensagem de erro que recebi foi a mesma, exceto pelo JDK (Java Development Kit) versão "jdk-12.0.2". JDK estava localizado em
E a variável de ambiente no Windows era JAVA_HOME: C: \ Program Files \ Java \ jdk-12.0.2
Após 3 horas de pesquisa, descobri que o Unity não oferece suporte ao JDK 10. Conforme informado em
https://forum.unity.com/threads/gradle-build-failed-error-could-not-determine-java-version-from-10-0-1.532169/
. Minha sugestão é:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Computer/This PC>Properties>Advanced System Settings>Environment Variables>New>Variable Name: JAVA_HOME>Variable Value: [YOUR JDK Path, Mine was "C:\Program Files\Java\jdk1.8.0_221"]
Edit > Preferences > External Tools and fill in the JDK path (Mine was "C:\Program Files\Java\jdk1.8.0_221")
.Android Studio > SDK Manager > Android SDK > Android SDK Location
.)fonte
conseguiu o arquivo de projeto .. gradle / wrapper / gradlewrapper.properties
lá você pode alterar o valor de
distributionurl
para a versão mais recente. (Encontrado em docs.gradle.org)fonte
Eu estava enfrentando o mesmo problema na configuração do Docker, enquanto tentava instalar
Gradle-2.4
com oJDL 11.0.7
. Eu tenho que instalar uma versão posterior para corrigir o problema.Aqui está o Dockerfile de trabalho
fonte