2016-01-30 2 views
1

Обновлено ли обновление IntelliJ Android Studio (с 30 января по 2016 год) поддерживает Java 8?Поддерживает ли Android SDK с API 23 (Marshmallow) Java 8?

Я использовал лямбда-выражение

mButton.setOnClickListener((View v) -> { 
    // do something here 
}); 

затем Android студии говорит мне, что есть ошибка, и когда я решить эту проблему (Alt + пробел) Я выбираю Переключаю на Java 8 (или что-то в этом роде) и он работает лямбда, но библиотеки с Android, кажется, не поддерживаются, он отмечает все красным цветом.

Любые варианты поддержки Java 8 в Android Studio?

Примечания: Я использую последний уровень API

+3

Java 8 не поддерживается прямо сейчас. –

+2

http://stackoverflow.com/questions/23318109/is-it-possible-to-use-java-8-for-android-development и многие другие – Marged

ответ

3

Нет, Java 8 не поддерживается. Вместо этого вы можете написать Lambdas и ссылки на методы, чтобы включить в ваш проект зависимость от retrolambda. То же самое с потоками, вот a backport library. В качестве альтернативы рассмотрите возможность использования kotlin.

+1

@HoracioGarza Просто хотел добавить, что для Java 8 потоков, существует также библиотека [streamsupport library] (https://sourceforge.net/projects/streamsupport/), которая намного ближе к синтаксису и функциональности Java 8 Stream, чем [Lightweight-Stream-API] (https://github.com/aNNiMON/Lightweight-Stream-API). Например, он также поддерживает параллельные потоки. – Sartorius

1

Android использует отставной Apache Harmony в его реализации Java, и я считаю, Harmony на Java 6, так нет, Java-не поддерживаются.

Java 8 будет поддерживаться в Android N, но поскольку он будет использовать OpenJDK вместо Harmony.