Использование Java 8 с Android API 22

Я использую Android Studio 3.0.0 Beta 5 и согласно этой ссылке Я должен иметь возможность использовать некоторые функции Java 8 для любой версии SDK. Но вместо этого я получаю это исключение для целевого SDK 22:

метод по умолчанию или статический интерфейс, используемый без --min-sdk-version >= 24

В то время как в предыдущей ссылке сказано, что функции методов интерфейса по умолчанию и статического интерфейса доступны для любого SDK.

PS: при использовании Java 8 используется Spark.


person miralak    schedule 25.09.2017    source источник
comment
Основываясь на этом сообщении об ошибке, я предполагаю, что это ошибка документации. Или, возможно, это изменение связано с переходом от поддержки Java 8 на основе Jack к более новой поддержке Java 8 на основе javac.   -  person CommonsWare    schedule 25.09.2017
comment
В предоставленной вами ссылке говорится о 24 SDK, а не о 22.   -  person Mike    schedule 25.09.2017
comment
@Mike, в ссылке говорится, что некоторые из них доступны для любого SDK (без минимальных ограничений SDK), а некоторым, конечно, нужен как минимум SDK 24.   -  person miralak    schedule 25.09.2017
comment
Вы должны делать что-то неправильно в конфигурации вашего проекта. Стандартные и статические методы интерфейса определенно действительно работают с набором инструментов desugar в Android Studio 3.0. Я проверил это с compileSdkVersion 26, minSdkVersion 15 и targetSdkVersion 23.   -  person Sartorius    schedule 25.09.2017


Ответы (1)


Минимальное значение minSdk для стандартных и статических методов интерфейса равно 24. Обзор можно посмотреть здесь.

https://developer.android.com/guide/platform/j8-jack.html

Но он должен быть доступен с новой Android Studio 3 в соответствии с таблицей здесь.

https://developer.android.com/studio/write/java8-support.html

Так что это либо ошибка документации, либо она еще не готова.

person Murat Karagöz    schedule 25.09.2017
comment
Ты прав! Обе документации не говорят об одном и том же... Я надеюсь, что один из разработчиков Android, работающих над этим, может дать мне окончательный ответ... - person miralak; 25.09.2017
comment
Что касается неготовности: большая часть этого работала (у меня) уже в сборке альфа-4. Я сейчас на бета-6 и еще не нашел никаких ошибок. - person Sartorius; 25.09.2017
comment
Старый компилятор jack устарел. Теперь, используя новую цепочку инструментов по умолчанию, вы можете использовать методы интерфейса по умолчанию и статические методы с любой версией android min sdk. - person Alex; 03.05.2018