После трюков с RxJava, RxAndroid и Retrolambda, которыми пользуются множество разработчиков, появился легкий и быстрый способ использования Retrolambda в Android-проектах.
4 простых шага:
Скачиваем и устанавливаем JDK8
Добавьте следующую зависимость в ваш проект в файл build.gradle на уровне main:
buildscript { repositories { mavenCentral() } dependencies { classpath 'me.tatarka:gradle-retrolambda:3.2.3' } }
Далее, добавьте эти плагины к вашему приложению в build.gradle
apply plugin: 'com.android.application' // or apply plugin: 'java' apply plugin: 'me.tatarka.retrolambda'
И наконец, добавьте эти строки в build.gradle, чтобы сообщить IDE новый уровень языка:
android { compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } }
Вот и все, теперь можно пользоваться более короткой записью.
Почувствуйте разницу в сравнении с обычным вызовом на примере слушателя:
button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { log("Clicked"); } });
Теперь код стал гораздо лаконичнее:
button.setOnClickListener(v -> log("Clicked"));
Данный код несовместим с Retrolambda
Преобразование может прерваться ошибкой, если библиотека содержит байт-код, который несовместим с retrolambda (что бывает довольно редко). Это можно исправить добавив данный код в файл build.gradle, :
retrolambda { jvmArgs '-noverify' }
Оригинал: Retrolambda on Android