Уровень языка Java 8 (Retrolambda) на AndroidStudio 4+?

Итак, кто-то обратил Lambdas для Java 8 обратно на Java 6 и 7. Очевидно, он также работает для Android. Проект называется Retrolambda. Я хотел поиграть с этим на AndroidStudio, но, похоже, в последней версии они удалили возможность устанавливать Java 8 в качестве уровня языка (поэтому я не получаю ошибки компиляции при использовании Lambdas). Кто-нибудь знает об этом? Я полагаю, что это связано с тем, что AndroidStudio - это модифицированный IntelliJ. Любая помощь будет оценена.

Ответы

Ответ 1

Он удаляется в новом проекте, но он доступен в свойствах после создания проекта. Обратите внимание, что я еще не скомпилирован с любыми новыми функциями Java 8, поэтому давайте надеемся, что это работает.

Щелкните правой кнопкой мыши на своем проекте, перейдите в раздел "Настройки модуля Open". Я думаю, что там где-то есть ошибка, так как как только я уйду от этой языковой настройки, я никогда не смогу вернуться к ней.

Чтобы обойти это, вы можете редактировать MyProject/.idea/misc.xml и искать атрибут languageLevel.

Чтобы включить настройки Project после перемещения, отредактируйте MyProject/.idea/workspace.xml и выполните поиск project.structure.last.edited. Установите значение в "Проект".

Ответ 2

Я обнаружил, что вы можете установить "уровень языка" на Java 8 в Android Studio, изменив build.gradle, чтобы включить следующее:

android {
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}