Android Studio не может найти JAVA_HOME
-
20-12-2019 - |
Вопрос
Кажется, я не могу скомпилировать свои Android-приложения из-за очень неприятного исключения из 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.
Я использую Ubuntu 12.04 и использую Oracle Java 7 JRE/JDK.
В ~/.bashrc
:
export JAVA_HOME="/usr/lib/jvm/java-7-oracle/"
В android-studio/bin/studio.sh
:
export JAVA_HOME="/usr/lib/jvm/java-7-oracle/"
Выход javac -version
:
javac 1.7.0_51
Выход 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)
Выход printenv JAVA_HOME
:
/usr/lib/jvm/java-7-oracle
Выход which javac
:
/usr/bin/javac
Я также вышел из системы и снова вошел в свою сессию.
Я действительно не уверен, чего мне здесь не хватает.Почему Android Studio не может скомпилировать мое приложение?
Решение 2
Я нашел решение в другой ответ:
rm ~/.AndroidStudioPreview/config/options/jdk.table.xml
Судя по всему, произошло то, что что-то было настроено для предыдущей версии Android Studio, и эта конфигурация просуществовала слишком долго :)
Другие советы
Я решил это, обновив build.gradle (верхний уровень) с помощью
classpath 'com.android.tools.build:gradle:2.1.2'
Я тоже получал эту ошибку.После многих часов попыток решить эту проблему мне удалось решить проблему.
В моем случае запуск приложения из командной строки помог!
Вот что я сделал (я использую Windows 10).Пожалуйста, запустите эти команды в корне проекта (где у нас есть приложение каталог):
1) Gradlew AssembleDebug
- Gradle выполнит свои задачи, и вы должны увидеть сообщение: СОЗДАЙТЕ УСПЕШНЫЙ
2) adb install -r app\build\outputs\apk\app-debug-unaligned.apk
- После выполнения этой строки вы увидите сообщение:100%]/dadata/local/tmp/app-debug-unaligned.apk pkg:/DATA/LOCAL/TMP/APP-DEBUG-UNALIGNED.APK Успех
3) оболочка adb am start -n имя_пакета/имя_пакета.MainActivity, где «имя_пакета» необходимо заменить именем вашего пакета (его можно найти в AndroidManifest.xml).Если «MainActivity» не является вашей активностью запуска, замените ее своей собственной активностью.
- Вы увидите сообщение: Начало:Намерение { cmp=имя_пакета/.MainActivity }, где package_name — это имя пакета вашего приложения.
Оно установит приложение на ваше устройство, и после этого Android Studio, похоже, снова найдет переменную JAVA_HOME.Вы сможете запустить приложение, нажав кнопку «Выполнить» в Android Studio.
Надеюсь, это кому-то поможет!
Я решил это, обновив путь к классам (build.gradle (Project:projectName))
classpath 'com.android.tools.build:gradle:2.2.3'
обновить модуль build.gradle
classpath 'com.android.tools.build:gradle:3.0.1'
Решил мою проблему
Перейдите в «Настройки» -> «Структура проекта» -> «Путь JDK» и измените его на системный JDK вместо Studio JDK, и все будет готово.
Только что скачал последнюю версию (android-studio-ide-1641136.dmg) и изменил содержимое файла Info.plist.Первоначально он настроен на использование версии 1.6* начиная с версии Java.У меня установлена версия 1.8, поэтому просто перешел на 1.8* и все заработало.
Я на Мак Йосемити.
Я нашел проблему с файлом Android Studio Studio.bat, и вот она
::------------------------------------------------------
:: 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
Вы видите проблему в последних двух строках кода?
Кажется, что если ваша переменная среды равна %JAVA_HOME%, командный файл выдаст ошибку GOTO, и будет отображено сообщение об ошибке, и все НЕТ ANDROID STUDIO ДЛЯ ВАС, хотя %JAVA_HOME% содержит действительный путь, но если переменная среды имеет что-то вроде %ANDROID_STUDIO_JDK%, как у меня, потому что я создал его сам, тогда он будет работать
ПРЕДЛАГАЕМЫЕ РЕШЕНИЯ
(1) Отредактируйте пакетный файл, в котором вы это видитеIF EXIST "%JAVA_HOME%" SET JDK=%JAVA_HOME%
IF "%JDK%" == "" GOTO error
Измените это на это
IF EXIST "%JAVA_HOME%" SET JDK=%JAVA_HOME%
IF NOT "%JDK%" == "" GOTO jdk
IF "%JDK%" == "" GOTO error
(2) Создать переменную окружающей среды с именем Android_studio_jdk %, как показано здесьhttps://kb.wisc.edu/cae/page.php?id=24500
Проверять эхо $JAVA_HOME
если это не дает вам правильный путь.следовать установка пути JAVA_HOME в Ubuntu
если он дает вам правильный набор путей, вам нужно обновить версию плагина gradle (это сработало для меня) и перестроить проект.