Windows下React Native+Expo项目打包遇两个构建失败问题求助
React Native Windows打包构建失败问题及解决方案
问题详情
错误1:expo-av构建报错
- 报错位置:
C:\Users\xujian\project\duxapp\node_modules\expo-av\android\build.gradle第13行 - 核心问题:评估项目
:expo-av时出错,提示 非法字符<>位于索引98:C:\Users\xujian\project\duxapp\node_modules\react-native\ReactAndroid\build\intermediates\library_*\jni - 官方提示:可使用
--stacktrace获取堆栈跟踪,--info/--debug查看更多日志,或--scan做完整分析
错误2:expo项目配置报错
- 核心问题:配置项目
:expo时出错,提示 未指定compileSdkVersion,请将其添加到build.gradle中
项目依赖版本
{ "react-native": "^0.69.5", "expo": "~46.0.9", "expo-av": "~12.0.4", "expo-barcode-scanner": "~11.4.0", "expo-brightness": "~10.3.0", "expo-camera": "~12.3.0", "expo-file-system": "~14.1.0", "expo-image-picker": "~13.3.1", "expo-keep-awake": "~10.2.0", "expo-location": "~14.3.0", "expo-modules-core": "~0.11.4", "expo-permissions": "~13.2.0", "expo-sensors": "~11.4.0" }
解决方案
针对错误1:路径通配符兼容问题
Windows系统不支持Gradle路径中间的*通配符写法,处理步骤:
- 打开
node_modules\expo-av\android\build.gradle,找到第13行的路径配置 - 将含
library_*\*\jni的路径替换为具体目录,比如原代码:
修改为:fileTree(dir: "${reactNativeDir}/ReactAndroid/build/intermediates/library_*/jni", include: "**/*.so")fileTree(dir: "${reactNativeDir}/ReactAndroid/build/intermediates/library/release/jni", include: "**/*.so") - 执行
gradlew clean清理缓存,再重新打包
针对错误2:compileSdkVersion缺失问题
- 打开项目根目录下的
android\build.gradle文件 - 在
buildscript的ext块中添加明确的版本配置(expo 46建议用33):buildscript { ext { buildToolsVersion = "33.0.0" minSdkVersion = 21 compileSdkVersion = 33 targetSdkVersion = 33 } // 其他原有代码 } - 检查
android\app\build.gradle,确保引用了上述变量,无重复定义 - 执行
gradlew clean后重新构建
内容的提问来源于stack exchange,提问作者ShaoGong
相关产品推荐
相关产品推荐

