2016-09-01 5 views
4

Последняя версия Android N имеет пакет потока, но когда я пытаюсь использовать это говорит версию мин SDk, который я должен использовать это 24 (N) и мой мин SDK является 16.Поддерживается ли Android N Stream API в более низких версиях?

Я включил JackOptions, с которым Lambda выражения, ссылки на методы работают нормально (даже для версий, меньших, чем N minsdk), но все же проблема связана только с пакетом Stream. Ссылка ниже https://developer.android.com/guide/platform/j8-jack.html говорит, что lambda, ссылки на методы доступны для 23 n ниже, но без ясности в пакете Stream.

Итак, я хочу понять, что пакет Steam, который я не могу использовать в своем проекте (minsdk 16)? Или я что-то упускаю.

Все компоненты sdk обновляются. compileSdkVersion 24 buildToolsVersion "24.0.2" minSdkVersion 16 targetSdkVersion 24 (23 не имеет значения)

Пожалуйста, предложите мне, что я должен делать. Также я видел streamsupport https://github.com/streamsupport/streamsupport, который работает нормально, но я не хочу добавлять новую зависимость.

+2

Насколько я знаю, не в Android SDK <24. См. Также http://stackoverflow.com/questions/37854239/stream-method-does-not-work-in-android/37880098 и http: // stackoverflow.com/questions/39039566/is-it-possible-to-use-java-8-features-optional-and-stream-for-android-14-and-hig – Sartorius

ответ

1

Является ли Android N Stream API включен в более низкие версии?

Нет, это не так, по крайней мере, с точки зрения буквально с использованием java и javax пакеты, такие как java.util.stream. Никакие классы не получают обратно к исходным пакетам Java, так как в противном случае существуют конфликты пространства имен на более новых устройствах.

На сегодняшний день Google не опубликовал какие-либо рабочие классы для java.util.stream и т. Д. В качестве библиотеки, где эти классы используют отдельный пакет Java.

+1

Спасибо за разъяснение. Google должен был сделать лучше, чем это, для поддержки потока, например, как библиотека поддержки потоков. На данный момент смешно держать minsdk равным 24, чтобы это работало (без какой-либо зависимости). –

5

К сожалению, Google не передал API потоков Java 8 для снижения версий API. Это означает, что в настоящее время нет AppCompatStream или что-нибудь в этом роде.
Однако, вы можете использовать Java 8 Stream API на Android minSdkVersion < 24, если вы хотите использовать сторонние библиотеки в своем проекте. Вот несколько таких проектов с открытым исходным кодом (крикнуть this пост):

Lightweight Stream API

Solid

StreamSupport

Если вы не заинтересованы в добавлении другой Gradle зависимости, всегда есть возможность добавления всего проекта в качестве другого модуля в ваш проект Android Studio или даже как другой пакет в модуле вашего приложения.