Вопрос

Кажется, я не могу скомпилировать свои Android-приложения из-за очень неприятного исключения из 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.

Я использую 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 (это сработало для меня) и перестроить проект.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top