Android Studio中JDK17的Stream.toList()方法不存在问题求助
Android Studio中Stream.toList()无法识别的解决办法
问题根源
Stream.toList()是Java 16新增的方法,但Android项目受Android Gradle插件(AGP)约束,即便本地JDK用的是17.0.7,若未正确配置Java兼容性或启用desugar支持,编译时仍无法识别该方法——这也是它能在IntelliJ IDEA普通Java项目中正常工作的原因(IDEA对纯Java项目的兼容性限制更少)。
具体解决步骤
1. 配置模块级构建脚本
修改你的模块build.gradle(或build.gradle.kts),指定Java版本并启用desugar:
Groovy版本:
android { compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 coreLibraryDesugaringEnabled true // 启用desugar以支持新Java API } // 若使用Kotlin,需添加以下配置 kotlinOptions { jvmTarget = "17" } } dependencies { coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.4' }
Kotlin DSL版本:
android { compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 coreLibraryDesugaringEnabled = true } kotlinOptions { jvmTarget = "17" } } dependencies { coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.0.4") }
2. 升级AGP版本(若需)
确保项目使用的AGP版本支持Java 17,推荐使用7.0及以上版本,修改项目根目录的build.gradle(或build.gradle.kts):
Groovy版本:
buildscript { dependencies { classpath 'com.android.tools.build:gradle:7.4.2' // 替换为兼容的高版本 } }
Kotlin DSL版本:
buildscript { dependencies { classpath("com.android.tools.build:gradle:7.4.2") } }
3. 同步并重建项目
- 点击Android Studio右上角的「Sync Project with Gradle Files」按钮同步配置
- 执行「Build > Clean Project」,再执行「Build > Rebuild Project」
4. 确认Android Studio的JDK配置
- 打开「File > Project Structure > SDK Location」
- 检查「JDK location」是否指向你安装的Eclipse Temurin 17.0.7,避免使用Android Studio自带的JDK或其他版本
内容的提问来源于stack exchange,提问作者Ernesto David Oliva Perez
相关产品推荐
相关产品推荐

