Pergunta

Não consigo compilar meus aplicativos Android devido a uma exceção realmente irritante do Android Studio:

]()![enter image description here

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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top