Android N的最新版本有流包,但是当我试图使用它时说我应该使用的最小Sdk版本是24(N)而我的min SDK是16。
我启用了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,它工作正常,但我不想添加新的依赖项。
答案 0 :(得分:4)
不幸的是,谷歌没有向Java 8流API反向移植以降低API版本。这意味着目前没有AppCompatStream
或任何类似的东西
但是,可以在Android minSdkVersion
上使用Java 8 Stream API< 24如果您愿意在项目中使用第三方库。以下是几个这样的开源项目(向this帖子大喊):
如果您对添加另一个gradle依赖项不感兴趣,则始终可以将整个项目添加为Android Studio项目中的另一个模块,或者甚至作为应用程序模块中的另一个模块。
答案 1 :(得分:0)
Android N Stream API是否已向后移植到较低版本?
不,它不是,至少在字面上使用java
和javax
包,例如java.util.stream
。没有类被反向移植到其原始Java包,否则在新设备上会发生命名空间冲突。
到目前为止,Google还没有为java.util.stream
等发布某些类似于工作的类,作为一个库,这些类碰巧使用单独的Java包。