React Native APK构建失败求助:执行gradlew assembleRelease报错
React Native 构建Release APK失败问题排查
问题概述
使用命令 gradlew assembleRelease 构建React Native应用的Release APK时失败,核心报错为无法找到React Native 0.71.0-rc.0的aar包。
项目依赖配置(package.json)
{ "name": "appName", "version": "0.0.1", "private": true, "scripts": { "android": "react-native run-android", "ios": "react-native run-ios", "start": "react-native start", "test": "jest", "lint": "eslint . --ext .js,.jsx,.ts,.tsx" }, "dependencies": { "@react-native-community/datetimepicker": "3.5.2", "@react-navigation/native": "5.9.2", "@react-navigation/stack": "5.14.2", "formik": "^2.2.9", "moment": "^2.29.4", "react": "17.0.2", "react-native": "0.68.2", "react-native-confirmation-code-field": "7.2.0", "react-native-countdown-component": "^2.7.1", "react-native-gesture-handler": "1.9.0", "react-native-mask-input": "1.2.1", "react-native-modal-selector-searchable": "^2.1.4", "react-native-safe-area-context": "3.1.9", "react-native-screens": "2.17.1", "react-native-svg": "12.1.0", "react-native-video": "^5.2.1", "yup": "^0.32.11" }, "devDependencies": { "@babel/core": "^7.20.12", "@babel/runtime": "^7.20.13", "@react-native-community/eslint-config": "^3.2.0", "@types/react": "^18.0.27", "@types/react-native": "^0.71.2", "babel-jest": "^29.4.1", "eslint": "^8.33.0", "jest": "^29.4.1", "metro-react-native-babel-preset": "^0.75.0", "prettier": "^2.8.4", "react-native-svg-transformer": "^1.0.0", "react-test-renderer": "17.0.2", "typescript": "^4.9.5" }, "jest": { "preset": "react-native" } }
构建报错详情
> Task :react-native-screens:generateReleaseRFile FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':react-native-screens:generateReleaseRFile'. > Could not resolve all files for configuration ':react-native-screens:releaseCompileClasspath'. > Failed to transform react-native-0.71.0-rc.0-release.aar (com.facebook.react:react-native:0.71.0-rc.0) to match attributes {artifactType=android-symbol-with-package-name, com.android.build.api.attributes.BuildTypeAttr=release, org.gradle.category=library, org.gradle.dependency.bundling=external, org.gradle.libraryelements=aar, org.gradle.status=release, org.gradle.usage=java-api}. > Could not find react-native-0.71.0-rc.0-release.aar (com.facebook.react:react-native:0.71.0-rc.0). Searched in the following locations: https://repo.maven.apache.org/maven2/com/facebook/react/react-native/0.71.0-rc.0/react-native-0.71.0-rc.0-release.aar
问题原因
项目实际依赖的React Native版本为 0.68.2,但react-native-screens@2.17.1在依赖解析过程中错误尝试拉取React Native 0.71.0-rc.0的预发布版本aar包,而该版本并未发布到Maven中央仓库,导致构建时依赖解析失败。
解决方案
方案1:升级react-native-screens到兼容版本
react-native-screens@2.17.1与RN 0.68.2存在依赖冲突,建议升级到适配RN 0.68.x的稳定版本,比如3.10.0:
npm install react-native-screens@3.10.0 --save
方案2:强制指定React Native版本(无需升级依赖)
在Android项目根目录下的android/build.gradle文件中,添加版本强制解析规则,避免依赖拉取错误版本:
allprojects { repositories { // 保留原有仓库配置 } // 新增以下配置 configurations.all { resolutionStrategy.force 'com.facebook.react:react-native:0.68.2' } }
方案3:清理构建缓存后重试
完成上述任一方案后,清理Android构建缓存并重新构建:
cd android ./gradlew clean ./gradlew assembleRelease
内容的提问来源于stack exchange,提问作者pratteek shaurya
相关产品推荐
相关产品推荐

