O Android Studio não consegue encontrar JAVA_HOME
-
20-12-2019 - |
Pergunta
Não consigo compilar meus aplicativos Android devido a uma exceção realmente irritante do Android Studio:
Execution failed for task ':myapp-services:compileDebugJava'.
Cannot find System Java Compiler. Ensure that you have installed a JDK (not just a JRE) and configured your JAVA_HOME system variable to point to the according directory.
Estou no Ubuntu 12.04 e estou executando o Java 7 JRE/JDK da Oracle.
Em ~/.bashrc
:
export JAVA_HOME="/usr/lib/jvm/java-7-oracle/"
Em android-studio/bin/studio.sh
:
export JAVA_HOME="/usr/lib/jvm/java-7-oracle/"
Saída de javac -version
:
javac 1.7.0_51
Saída de java -version
:
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)
Saída de printenv JAVA_HOME
:
/usr/lib/jvm/java-7-oracle
Saída de which javac
:
/usr/bin/javac
Eu também efetuei logout e login novamente em minha sessão.
Eu realmente não tenho certeza do que estou perdendo aqui.Por que o Android Studio não consegue compilar meu aplicativo?
Solução 2
Encontrei uma solução em uma resposta diferente:
rm ~/.AndroidStudioPreview/config/options/jdk.table.xml
O que parece ter acontecido é que algo foi configurado para uma versão anterior do Android Studio e essa configuração durou muito :)
Outras dicas
Eu resolvi isso atualizando build.gradle (nível superior) com
classpath 'com.android.tools.build:gradle:2.1.2'
Eu também estava recebendo esse erro.Depois de muitas horas tentando resolver, consegui resolver o problema.
No meu caso, executar o aplicativo na linha de comando resolveu!
Aqui está o que eu fiz (estou usando o Windows 10).Por favor, execute estes comandos na raiz do projeto (onde temos o aplicativo diretório):
1) gradlew assembleDebug
- Gradle executará suas tarefas e você deverá ver a mensagem: CONSTRUIR COM SUCESSO
2) adb install -r appbuildoutputsapkapp-debug-unaligned.apk
- Após executar esta linha, você verá a mensagem:100%] /data/local/tmp/app-debug-unaligned.apk pkg:/data/local/tmp/app-debug-unaligned.apk Sucesso
3) adb shell am start -n nome_do_pacote/nome_do_pacote.MainActivity, onde "package_name" deve ser substituído pelo nome do seu pacote (você pode encontrá-lo em AndroidManifest.xml).Se "MainActivity" não for sua atividade de inicialização, substitua-a por sua própria atividade.
- Você verá a mensagem: Iniciando:Intenção { cmp=package_name/.MainActivity }, onde "package_name" é o nome do pacote do seu aplicativo.
Ele irá instalar o aplicativo no seu dispositivo e depois disso, o Android Studio parece encontrar a variável JAVA_HOME novamente.Você deverá conseguir executar o aplicativo clicando no botão "Executar" no Android Studio.
Espero que ajude alguém!
Eu resolvi isso atualizando o classpath de (build.gradle (Project:projectName))
classpath 'com.android.tools.build:gradle:2.2.3'
atualizar módulo build.gradle
classpath 'com.android.tools.build:gradle:3.0.1'
Resolvi meu problema
Vá para Configurações->Estrutura do Projeto->Caminho JDK e altere-o para o JDK do sistema em vez do Studio JDK, você estará pronto e funcionando.
Acabei de baixar a versão mais recente (Android-studio-ide-1641136.dmg) e alterei o conteúdo do arquivo Info.plist.Ele está originalmente configurado para usar 1.6* a partir da versão Java.Eu tenho o 1.8 instalado, então mudei para 1.8* e funcionou.
Estou no Mac Yosemite.
Eu encontrei um problema com o arquivo Android Studio Studio.bat e aqui está
::------------------------------------------------------
:: Locate a JDK installation directory which will be used to run the IDE.
:: Try (in order): ANDROID_STUDIO_JDK, ..\jre, JDK_HOME, JAVA_HOME.
:: ---------------------------------------------------------------------
IF EXIST "%ANDROID_STUDIO_JDK%" SET JDK=%ANDROID_STUDIO_JDK%
IF NOT "%JDK%" == "" GOTO jdk
IF EXIST "%~dp0\..\jre" SET JDK=%~dp0\..\jre
IF NOT "%JDK%" == "" GOTO jdk
IF EXIST "%JDK_HOME%" SET JDK=%JDK_HOME%
IF NOT "%JDK%" == "" GOTO jdk
IF EXIST "%JAVA_HOME%" SET JDK=%JAVA_HOME%
IF "%JDK%" == "" GOTO error
Você percebe o problema nas últimas 2 linhas de código?
Parece que se sua variável ambiental for %JAVA_HOME% o arquivo em lote irá dar erro GOTO e uma mensagem de erro será exibida e é isso NO ANDROID STUDIO FOR YOU, mesmo que %JAVA_HOME% contenha um caminho válido mas se a variável ambiental for algo como %ANDROID_STUDIO_JDK% como o meu é porque eu mesmo o criei, então funcionará
SOLUÇÕES PROPOSTAS
(1) Edite o arquivo em lote onde você vê issoIF EXIST "%JAVA_HOME%" SET JDK=%JAVA_HOME%
IF "%JDK%" == "" GOTO error
Mude para isso
IF EXIST "%JAVA_HOME%" SET JDK=%JAVA_HOME%
IF NOT "%JDK%" == "" GOTO jdk
IF "%JDK%" == "" GOTO error
(2) Crie uma variável ambiental chamada % Android_studio_jdk %, como mostrado aquihttps://kb.wisc.edu/cae/page.php?id=24500
Verificar echo $JAVA_HOME
se isso não fornecer o caminho correto.seguir definindo o caminho JAVA_HOME no Ubuntu
se ele fornecer o caminho correto definido, você precisará atualizar a versão do plugin Gradle (funcionou para mim) e reconstruir o projeto.