Как Android Studio запускает демона Gradle?

Я сталкиваюсь с проблемой, когда демон Gradle (запущенный Android Studio через API инструментов) использует другую версию Java, чем при запуске из командной строки.

У меня нет никакого значения для JAVA_HOME, и Java находится в моем пути:

java -version
java version "1.8.0_72"
Java(TM) SE Runtime Environment (build 1.8.0_72-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.72-b15, mixed mode)

Я написал задачу для отладки:

task printDebug << {
    println "command: " + System.getProperty("sun.java.command");
    println "JAVA_HOME: " + System.env.'JAVA_HOME';
    println "Java Version: " + org.gradle.internal.jvm.Jvm.current();
}

который при запуске через Studio производит:

command: org.gradle.launcher.daemon.bootstrap.GradleDaemon 2.8
JAVA_HOME: null
Java Version: 1.7.0_71 (Oracle Corporation 24.71-b01)

но при запуске через командную строку выдает:

command: org.gradle.wrapper.GradleWrapperMain printDebug
JAVA_HOME: null
Java Version: 1.8.0_72 (Oracle Corporation 25.72-b15)

Как выбран исполняемый файл java для демона gradle? Как это запускается? Для чего это стоит, Android Studio использует ожидаемую версию Java (1.8), о чем сообщает 'About Android Studio'.

1 ответ

Решение

Демон Gradle будет использовать JDK, который вы выбрали для своего проекта, а не JRE/JDK, который используется для запуска IntelliJ/Android Studio.

Чтобы изменить этот параметр, откройте диалоговое окно " Структура проекта " ("Файл" -> "Структура проекта") для своего проекта и обновите расположение JDK:

Другие вопросы по тегам