You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android中Stream.toList()在APK中失效但Studio直接安装正常的问题

Stream.toList() 安装APK后抛出NoSuchMethodError的解决方案

问题详情

使用以下Java代码进行流处理:

var subList = mainList.stream()
            .flatMap(mainListItem ->
                    getSubItems(mainListItem.subItems).stream())
            .toList()

直接从Android Studio运行应用时功能正常,但安装打包后的APK时,toList()调用触发如下错误:

Caused by: java.lang.NoSuchMethodError: No interface method toList()Ljava/util/List; in class Lj$/util/stream/Stream; or its super classes (declaration of 'j$.util.stream.Stream' appears in /data/app/~~O_6UL0ys4sQP9iQ4qmUjjQ==/com.package.name-PBAatiCc4N4NNAIsUiGUfg==/base.apk!classes19.dex)

已配置Desugaring相关参数:

compileOptions {
    coreLibraryDesugaringEnabled true

    sourceCompatibility JavaVersion.VERSION_11
    targetCompatibility JavaVersion.VERSION_11
}

kotlinOptions {
    jvmTarget = JavaVersion.VERSION_11.toString()
}

使用的Desugaring库版本为1.1.5:

coreLibraryDesugaring "com.android.tools:desugar_jdk_libs:1.1.5"

禁用minifyEnabled和shrinkResources后问题仍未解决。

解决方法

1. 升级Desugaring库版本

desugar_jdk_libs:1.1.5对Java 11新增的Stream.toList() API支持存在缺陷,建议升级到1.2.0及以上版本,例如:

coreLibraryDesugaring "com.android.tools:desugar_jdk_libs:1.2.2"

新版本修复了多个Java 11+ API的Desugaring兼容问题,能正确处理Stream.toList()的字节码转换。

2. 替换为Java 8兼容的收集方式

如果暂时无法升级库,可以改用Java 8原生支持的收集器替代toList(),避免依赖Java 11的新API:

import java.util.stream.Collectors;

// 替换后的代码
var subList = mainList.stream()
            .flatMap(mainListItem ->
                    getSubItems(mainListItem.subItems).stream())
            .collect(Collectors.toList())

这种写法在所有支持Java 8流API的Android环境中都能稳定运行,无需依赖Desugaring对Java 11特性的适配。

3. 确认所有模块的Desugaring配置

如果项目包含多个模块(如子模块、依赖库),需确保所有使用Stream.toList()的模块都开启了Desugaring:

  • 在对应模块的build.gradle中添加coreLibraryDesugaringEnabled true
  • 同步引入相同版本的Desugaring库

4. 清理构建缓存并重新构建

执行以下操作彻底清除缓存,避免旧编译产物干扰:

  • 点击Android Studio菜单栏的Build > Clean Project
  • 执行Build > Rebuild Project
  • 删除项目根目录的.gradle文件夹和各模块的build文件夹,重新同步项目

内容的提问来源于stack exchange,提问作者Devansh Maurya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 16:40:09