Expo构建Release版本失败问题求助(React Native)
解决Expo构建Android Release时的Gradle错误
优先尝试升级依赖(最推荐)
这两个错误基本是依赖包的Gradle配置与当前项目的Gradle/Expo版本不兼容导致的,先升级相关包:
- 升级
expo-structured-headers:运行npm install expo-structured-headers@latest或yarn add expo-structured-headers@latest - 升级
expo-modules-core:运行npm install expo-modules-core@latest或yarn add expo-modules-core@latest - 同步Expo SDK版本:执行
expo upgrade将所有依赖更新到当前SDK的兼容版本
临时修复:手动修改依赖的Gradle配置
如果升级后问题仍存在,可临时修改出错的配置文件(注意:重新安装依赖后修改会失效,优先推荐升级方案):
- 修复
expo-structured-headers的错误:
打开node_modules/expo-structured-headers/android/build.gradle,找到第40行的classifier = 'sources',替换为archiveClassifier.set('sources')——Gradle 7+版本不再支持直接赋值classifier,需使用setter方法 - 修复
expo-modules-core的错误:
打开node_modules/expo-modules-core/android/ExpoModulesCorePlugin.gradle,找到第65行获取release组件的代码,改为components.findByName("release")或components.getByName("release")——新版Gradle中SoftwareComponent容器的访问方式已变更
检查Gradle版本匹配度
确认项目根目录gradle/wrapper/gradle-wrapper.properties中的Gradle版本与Expo SDK要求匹配,比如Expo SDK 49对应Gradle 8.0左右,可将distributionUrl设置为:
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-all.zip
同时检查android/build.gradle里的com.android.tools.build:gradle插件版本,例如Gradle 8.0对应插件版本7.4.2。
清理缓存后重新构建
执行以下命令清除缓存,再尝试构建:
./gradlew clean rm -rf node_modules && rm package-lock.json && npm install expo prebuild --clean
内容的提问来源于stack exchange,提问作者Malyaj Singh
相关产品推荐
相关产品推荐

