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

Android Studio配置JDK18仍无法识别Java 11+新特性求助

问题根因

Android Studio 对Java语法识别、代码提示、编译校验的判断依据,和你在设置页手动选的JDK版本没有关系。那个设置项仅用于指定Gradle构建进程的运行时环境,真正控制代码可使用Java版本范围的是项目Gradle编译配置。当前配置下你的源码兼容级别默认卡在Java 8,因此Java 11新增的String.repeat()等API会抛出Cannot resolve method报错,重装IDE、清缓存、更换JDK安装包都碰不到核心配置,自然解决不了问题。
IntelliJ IDEA不存在这个问题,是因为普通Java项目会默认将选定的项目SDK作为源码兼容级别,不需要额外配置;但Android项目的构建规则完全由Android Gradle插件(AGP)接管,IDE侧的独立JDK设置无法覆盖AGP下发的编译规则。

修复步骤
  • 第一步:修改对应业务模块(通常是app模块)的build.gradle文件,在android配置块中补充/修改源码兼容参数:
android {
    // 保留原有其他配置
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_11
        targetCompatibility JavaVersion.VERSION_11
        // 项目如果混用Kotlin,需要额外增加以下配置
        // kotlinOptions.jvmTarget = "11"
    }
}

注意:如果需要在Android 12(API 31)以下的设备上使用String.repeat()这类Java高版本新增API,必须开启核心库脱糖(desugar)支持

  • 第二步:开启核心库脱糖配置,还是在模块级build.gradle中修改:
    先在compileOptions中打开脱糖开关:
android {
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_11
        targetCompatibility JavaVersion.VERSION_11
        coreLibraryDesugaringEnabled true
    }
}

再在dependencies配置块中添加脱糖依赖:

dependencies {
    coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.4'
    // 保留原有其他依赖
}
  • 第三步:点击工具栏的Gradle同步按钮(大象图标),等待同步完成后,Java 11+ API的识别报错会自动消失。
额外排查点

如果完成以上操作后问题仍然存在,逐一检查以下配置:

  • 确认项目使用的AGP版本在7.0及以上,4.2及更低版本的AGP没有完整的Java 11+支持,会出现语法识别异常
  • 打开File > Project Structure > Modules页面,检查对应模块的Source Compatibility配置是否和build.gradle中设置的版本一致,手动修正不一致的配置
  • 如果需要使用Java 17/18的语法特性,将上述配置中的VERSION_11替换为对应版本即可,前提是AGP版本升级到支持对应Java版本的最新稳定版

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 18:18:40