【问题标题】:Is Android N Stream API backported to lower versions?Android N Stream API 是否向后移植到较低版本?
【发布时间】:2017-01-08 22:52:08
【问题描述】:

最新版本的 Android N 有流包,但是当我尝试使用它时说我应该使用的 min Sdk 版本是 24 (N) 而我的 min SDK 是 16。

我启用了带有 Lambda 表达式的 JackOptions,方法引用工作正常(即使对于小于 N minsdk 的版本)但仍然存在问题,只有 Stream 包。 https://developer.android.com/guide/platform/j8-jack.html 下面的链接表示 lambda,方法引用也可用于 23 n 以下,但 Stream 包不清楚。

所以我想了解我不能在我的项目中使用的 Steam 包(minsdk 16)?还是我错过了什么。

所有 sdk 组件都已更新。 compileSdkVersion 24 构建工具版本“24.0.2” minSdkVersion 16 targetSdkVersion 24(23 无关紧要)

请建议我应该怎么做。我还看到 streamsupport https://github.com/streamsupport/streamsupport 工作正常,但我不想添加新的依赖项。

【问题讨论】:

标签: java android lambda java-stream android-7.0-nougat


【解决方案1】:

Android N Stream API 是否向后移植到较低版本?

不,它不是,至少在字面上使用javajavax 包,例如java.util.stream。没有类被反向移植到其原始 Java 包,否则在较新的设备上会出现命名空间冲突。

迄今为止,Google 尚未将 java.util.stream 等的一些类似工作的类作为库发布,这些类恰好使用单独的 Java 包。

【讨论】:

  • 感谢您的澄清。 Google 应该比这更好地支持流,就像流支持库所做的那样。到目前为止,将 minsdk 保持为 24 以使其正常工作(没有任何依赖关系)是荒谬的。
【解决方案2】:

很遗憾,Google 没有将 Java 8 流 API 向后移植到较低的 API 版本。这意味着目前没有 AppCompatStream 或类似的东西。
但是,如果您愿意在项目中使用 3rd 方库,则可以在 Android minSdkVersion this 发帖):

Lightweight Stream API

Solid

StreamSupport

如果您对添加另一个 gradle 依赖项不感兴趣,则始终可以将整个项目作为另一个模块添加到您的 Android Studio 项目中,或者甚至作为另一个包添加到您的应用模块中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-07-07
    • 1970-01-01
    • 1970-01-01
    • 2011-06-15
    • 1970-01-01
    • 2012-05-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多