2016-08-07 2 views
0

Я установил Android Studio, и у меня есть как Jdk 1.7, так и 1.8. Когда я выполнил приложение, он дал мне ошибку, что он должен быть запущен с помощью Jdk 1.8.I wen в File >> project structure и изменил путь для jdk versio на jdk 1.8, но когда я нажимаю OK, синхронизация градиента начинается с jdk 1.7. Теперь, когда я снова открою структуру проекта, версия JDk снова будет сброшена на 1.7.Jdk версия автоматически сбрасывается до 1,7 в студии android

Системная переменная JAVA_HOME установлена ​​в путь jdk 1.8. Я удалил Android Studio и переустановил его, но ничего не получилось.

+1

Android не поддерживает Java 8 (пока). –

ответ

0

В вашем build.gradle также есть тег compileOptions, чтобы заставить JDK 1.8.

Вам необходимо включить компилятор Jack, а также воспользоваться возможностями Java 8.

android { 
    ... 
    defaultConfig { 
    ... 
    jackOptions { 
     enabled true 
    } 
    } 
    compileOptions { 
    sourceCompatibility JavaVersion.VERSION_1_8 
    targetCompatibility JavaVersion.VERSION_1_8 
    } 
} 

стр Google на Java 8 функций, доступных на Android здесь: https://developer.android.com/preview/j8-jack.html

Кроме того, имейте в виду, что некоторые функции не поддерживают Java под 8 с компилятором Джек. Один из самых больших (по крайней мере для меня) - это Transform API с обработчиками аннотаций. Если вы или библиотека, которая вам нравится, использует Transform API, вы можете отключить Jack и использовать библиотеку для получения некоторых функций Java 8 в любом случае, например Retrolambda.

Смотрите здесь для получения подробной информации о RetroLambda: https://github.com/evant/gradle-retrolambda

+0

Я пробовал это. Но затем, когда я запускаю приложение, град берется навсегда для сборки. консоль градиента застряла в: app: compileDebugJavaWithJack –

+0

, а затем через 12 минут я получил сообщение об ошибке Ошибка: выполнение завершилось с ошибкой для задачи: app: compileDebugJavaWithJack. > java.lang.RuntimeException: java.lang.OutOfMemoryError: превышен верхний предел GC –

+0

Это Джек для вас. Это все еще в бета-версии, и именно это случилось со мной, когда я попробовал пару месяцев назад. На данный момент я рекомендую использовать стороннюю библиотеку для поддержки функций Java на Java, а затем переключиться на Jack, когда это будет прайм-тайм. – Darrien