Я могу использовать retrolambda для включения lambdas с уровнем API Android < 24. Так что это работает
myButton.setOnClickListener(view -> Timber.d("Lambdas work!"));
Это также работает
Runnable runLater = () -> Timber.d("Lambdas work!");
runLater.run();
Но это не
Consumer<Integer> runLaterWithInt = (Integer i) -> Timber.d("i = " + i);
runLaterWithInt.accept(3);
Последний работает на Android API Level 24, но на других устройствах этот код вызывает сбой
java.lang.NoClassDefFoundError: com.retrolambdatry.MainActivity$$Lambda$1
Вместо использования retrolambda я попытался включить Java 8. Первые два примера кода все еще работают, хотя butterknife перестает работать. https://developer.android.com/preview/j8-jack.html#configuration здесь ava.util.function
, как говорят, поддерживается, но я все равно получаю сбой при запуске третьего, на этот раз это немного отличается
java.lang.NoClassDefFoundError: com.retrolambdatry.MainActivity$-void_onCreate_android_os_Bundle_savedInstanceState_LambdaImpl1