Как добавить Java 8 в Android?

365
16 сентября 2017, 23:39

Можно ли использовать лямбда-выражения? И вообще - можно ли Java 8 туда добавить? Только официально, а не "левыми" путями.

Answer 1

Можно в Android Studio 3.0. Лямбды доступны в ней для любого minSdkVersion, достаточно добавить в каждый модуль, либо содержащий Java 8 код, либо содержащий зависимости с Java 8 байткодом.

android {
  ...
  // Configure only for each module that uses Java 8
  // language features (either in its source code or
  // through dependencies).
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}

Все подробности здесь
https://developer.android.com/studio/write/java8-support.html

Answer 2

Есть описание в документации:

android { ... defaultConfig { ... jackOptions { enabled true } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } }

это необходимо добавить в build.gradle

Answer 3

К описанным выше способам поддержки лябмда выражений добавлю еще один:

dependencies {
    classpath 'me.tatarka:gradle-retrolambda:3.2.5' //lambda support
}
Answer 4

Да, можно. Делать ничего не надо, она поддерживает Java 8 и лямбды по умолчанию. Но работать будет только на Android 7 и выше.

READ ALSO
Как ускорить GET / POST запросы в Java?

Как ускорить GET / POST запросы в Java?

Нижеприведенный запрос тянет из базы список из таблицы где 1000-1500 строк (id, code, title)Но по времени это происходит не очень быстро

328
Запись в файл List<String[]>

Запись в файл List<String[]>

Есть структура

368
Invalid path: &#39;null.name&#39;

Invalid path: 'null.name'

Пытаюсь сделать выборку из бд согласно заданным параметрамИ получаю такую ошибку:

295
Парсинг JSON ответ с сервера вида

Парсинг JSON ответ с сервера вида

Подскажите как распарсить вот такой JSONДернуть отдельно объект companies получается без проблем, дернуть отдельную компанию по Id тоже не проблема,...

280