UPDATE 2017/11/04 - Android Studio 3.0 теперь имеет встроенную поддержку Java 8. gradle-retrolambda
теперь больше не требуется. См. https://developer.android.com/studio/write/java8-support.html
. Приведенная выше ссылка также содержит инструкции по миграции, если вы используете gradle-retrolambda
. Оригинальный ответ ниже:
Android не поддерживает Java 8. Он поддерживает только до Java 7 (если у вас есть kitkat), и все же он не имеет invokedynamic, а только новый синтаксический сахар.
Если вы хотите использовать lambdas, одну из основных функций Java 8 в Android, вы можете использовать gradle-retrolamba . Это зависимость построения градиента, которая объединяет retrolambda, инструмент, который преобразует байт-код Java 8 обратно в Java 6/7. В принципе, если вы установите компилятор в Android Studio для компиляции байт-кода Java 8, таким образом, позволяя lambdas, он преобразует его обратно в Java 6/7 bytecode, который затем, в свою очередь, преобразуется в байт-код dalvik. Это взломать, если вы хотите попробовать некоторые функции JDK 8 в Android вместо официальной поддержки.
Operand type clash: date is incompatible with int
. Наверное, это потому, что вы пытаетесь использовать оператор -
на дату?
– Sam
10 December 2014 в 04:26