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
相关产品推荐
相关产品推荐

