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

React Native Expo项目Android构建失败:Unsupported class file major version 66

解决Expo React Native项目构建失败:Unsupported class file major version 66

问题核心

执行npx expo run:android --device构建Expo项目appv2时失败,关键错误提示:

Could not open cp_proj generic class cache for build file '/Users/macbookpro/Documents/GitHub/appv2/android/build.gradle'
BUG! exception in phase 'semantic analysis' in source unit 'BuildScript' Unsupported class file major version 66

原因分析

类文件主版本66对应Java 22,而当前项目使用的Gradle 8.3不支持Java 22(Gradle 8.x系列仅兼容Java 11至Java 17),Java与Gradle版本不匹配导致构建缓存无法正常加载。

解决方案

1. 确认当前Java版本

在终端执行命令,检查当前使用的Java版本:

java -version

如果输出显示为Java 22,说明版本不兼容,需要降级。

2. 降级Java至Gradle兼容版本(推荐Java 17)

根据你的包管理器选择对应操作:

  • 使用SDKMAN(推荐):
    # 安装Java 17
    sdk install java 17.0.11-tem
    # 切换到Java 17
    sdk use java 17.0.11-tem
    
  • 使用Homebrew:
    # 安装OpenJDK 17
    brew install openjdk@17
    # 配置环境变量(根据终端类型,修改.zshrc或.bash_profile)
    echo 'export PATH="/usr/local/opt/openjdk@17/bin:$PATH"' >> ~/.zshrc
    # 刷新环境变量
    source ~/.zshrc
    

3. 验证Java版本切换成功

再次执行java -version,确认输出显示为Java 17。

4. 清理Gradle缓存

删除本地Gradle缓存目录,避免旧缓存干扰:

rm -rf ~/.gradle/caches

5. 重新构建项目

回到项目根目录,重新执行构建命令:

npx expo run:android --device

补充说明

如果项目中手动指定了Java版本,需确保android/build.gradle中的配置与Java 17兼容:

android {
    compileSdkVersion 34 // 或其他兼容版本
    defaultConfig {
        targetSdkVersion 34
        // 其他配置...
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_17
        targetCompatibility JavaVersion.VERSION_17
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 00:33:26