如何在Api Level低于24时使用Lambda(java.util.function,java.util.stream)?

时间:2017-12-26 09:26:16

标签: java android lambda android-api-levels

我发现了几个类似问题,但没有解决我的问题。

我尝试了什么

  • 我写了几个使用lambda的方法 ' java.util.function'和' java.util.stream' (我在Java中使用它 应用程序服务器端,在Windows上)
  • 我非常需要在Android应用(客户端)中使用它们
  • 我更新到Android Studio 3.0
  • 我按照" https://developer.android.com/studio/write/java8-support.html"中的要求为java1.8等配置了build.gradle,其中还写了' java.util.function& #39;和' java.util.stream'可以使用api级别> = 24
  • 我尝试启用插孔选项,但我必须禁用,因为在编译期间Android Studio会给我错误,并说我要禁用插孔选项。
  • 我强烈需要兼容低于24的api级别:minSdkVersion 15

问题

  • Android Studio中的编译没问题,但是当应用程序安装在Api< 24的移动设备上时,我在logcat中遇到很多错误并且应用程序未运行:错误示例:
    • 12-26 10:59:14.245 6709-6709 /? W / dalvikvm:班级的链接' LVarie / Utilities_Per_Cache $$ Lambda $ 5;'失败
    • 12-26 10:59:14.245 6709-6709 /? W / dalvikvm:VFY:无法解析LVarie / Utilities_Per_Cache $$ Lambda $ 5中的静态字段2526($ instance);
    • 等...

问题:

  • 当Android设备具有api级别&lt;时,我该怎么办? 24(我的大多数用户都拥有api级别<24的手机)?
  • 我理解,谷歌搜索,杰克选项(或retrolamda库)允许使用&#39; java.util.function&#39;和#java; java.util.stream&#39;,有没有办法说(我想在gradle.build里面):如果api级别是&lt; = 24使用jack选项?

0 个答案:

没有答案