Java 8 в предварительной версии Android N

Официальное объявление о Java 8 для Android N Предварительный просмотр говорит следующее:

Благодаря компилятору Jack для Android теперь вы можете использовать многие популярные функции языка Java 8, включая лямбда-выражения и многое другое, в версиях Android, начиная с Gingerbread. (…) Некоторые функции языка Java 8 , такие как стандартные и статические методы, потоки и функциональные интерфейсы , также теперь доступны на N и более поздних версиях.

Я использую следующую конфигурацию gradle с minSdkVersion 15, чтобы попробовать Java 8 в небольшом проекте:

android {
    compileSdkVersion 'android-N'
    buildToolsVersion '24.0.0 rc1'

    defaultConfig {
        applicationId "org.sergiiz.thermometer"
        minSdkVersion 15
        targetSdkVersion 'N'
        versionCode 1
        versionName "1.0"
        jackOptions{
            enabled true
        }
    }
    compileOptions {
        targetCompatibility 1.8
        sourceCompatibility 1.8
    }
   //...
}

Но селектор цели развертывания показывает minSdk(API23, N preview). Это ожидаемое поведение?

введите здесь описание изображения

Есть ли список функций/пакетов Java 8, доступных еще в Gingerbread, и знаете ли вы, какие настройки gradle или библиотеки поддержки необходимы для использования функций Java 8 в API‹23?


person Sergii    schedule 29.03.2016    source источник
comment
Я не могу помочь вам с настройками Gradle (еще не пробовал). Но список поддерживаемых функций Java 8 до Android N прост: это только лямбда-выражения/ссылки на методы - ничего больше, насколько мне известно.   -  person Stefan Zobel    schedule 29.03.2016
comment
Возможный дубликат этого: stackoverflow.com/questions/35929484/   -  person Stefan Zobel    schedule 29.03.2016


Ответы (1)


Но селектор цели развертывания показывает minSdk (API23, предварительная версия N). Это ожидаемое поведение?

Да. Предварительная версия N Developer Preview настроена для работы только на N устройствах. Ваша строка targetSdkVersion 'N' неявно изменяет вашу minSdkVersion на N.

Знаете ли вы, какие настройки Gradle или библиотеки поддержки необходимы для использования функций Java 8 в API‹23?

Я рекомендую вам не беспокоиться о функциях Java 8 на старых устройствах, пока Android N не выйдет из режима «предварительного просмотра для разработчиков» или группа инструментов Android не предоставит конкретные инструкции, отличные от N.

person CommonsWare    schedule 29.03.2016