提问人:Bitwise DEVS 提问时间:5/23/2021 更新时间:11/23/2022 访问量:860
脱糖 - Java 8 Stream API 和 Proguard 在发布版本中崩溃
Desugaring - Java 8 Stream API with Proguard crash in release version
问:
该应用程序仅在其发布版本中崩溃,并对 Android 的 Java 8 进行脱糖。
compileOptions {
// Flag to enable support for the new language APIs
coreLibraryDesugaringEnabled true
// Sets Java compatibility to Java 8
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5'
这是我们尝试过但没有奏效的。
-keep class java.util.stream.** { *; }
示例代码只是使用过滤器
List<MovieModel> = someList.stream().filter(it -> !it.getImdbId().equalsIgnoreCase(model.getImdbId())).collect(Collectors.toList())
错误:
java.lang.ClassCastException: j$.util.stream.p cannot be cast to j$.wrappers.p
答:
1赞
taotao
11/23/2022
#1
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.2.2'
tools:desugar_jdk_libs
应升级到 1.1.5 或 heigher。
https://developer.android.com/studio/write/java8-support.html
上一个:生成 B4A 的脱糖库
下一个:D8 DEX 编译因脱糖而失败
评论
someList
model
List<MovieModel>