Windows下React Native编译失败求助:VERSION_CODES.TIRAMISU未识别
解决Windows上React Native Android编译失败问题
核心问题分析
VERSION_CODES.TIRAMISU是Android API 33(Android 13)新增的常量,你的依赖库react-native-image-picker代码中用到了它,因此必须将项目的compileSdkVersion升级到33或更高才能识别该符号。而切换到33后react-native-webview报错,通常是依赖版本不兼容或模块间compileSdk版本不一致导致的。
具体解决步骤
1. 统一项目的Android SDK版本配置
修改项目根目录下的build.gradle文件,更新以下配置:
buildscript { ext { buildToolsVersion = "33.0.2" minSdkVersion = 21 // 可根据业务需求调整,但不能低于依赖库要求的最低版本 compileSdkVersion = 33 targetSdkVersion = 33 ndkVersion = "25.1.8937393" // 旧NDK 20不兼容API33,必须升级到25+版本 } // ... 保留其他原有配置 }
接着修改app模块下的build.gradle,确保所有版本配置与根目录保持一致,避免局部版本冲突。
2. 强制所有依赖模块使用统一的compileSdkVersion
在根目录的build.gradle末尾添加以下代码,强制所有子模块(包括第三方依赖)使用项目统一的compileSdk和targetSdk版本:
subprojects { afterEvaluate { project -> if (project.hasProperty("android")) { android { compileSdkVersion rootProject.ext.compileSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion } } } }
3. 升级react-native-webview到兼容版本
如果你的react-native-webview版本较旧,可能不支持compileSdk 33:
- 查看当前RN版本对应的webview兼容版本(比如RN 0.69+需webview 11.23.0及以上)
- 执行升级命令:
npm install react-native-webview@最新兼容版本 --save # 或 yarn add react-native-webview@最新兼容版本
4. 彻底清理并重新构建
Windows环境下执行以下命令:
# 清理gradle缓存 gradlew.bat clean # 删除本地依赖和锁文件 rm -rf node_modules package-lock.json yarn.lock # 重新安装依赖 npm install # 无缓存重新编译运行 npx react-native run-android --no-cache
5. 确认JDK环境配置
确保Windows系统的JAVA_HOME环境变量指向JDK 11,且PATH中包含%JAVA_HOME%\bin,避免编译时JDK版本异常。
内容的提问来源于stack exchange,提问作者JoseGE
相关产品推荐
相关产品推荐

