React Native Android构建失败:无法找到指定依赖包
问题现象
构建React Native Android版本时失败,终端输出两个核心错误,且同一项目在其他电脑可正常完成构建。报错截图如下:
终端错误详情
错误1::react-native-community_slider:generateReleaseRFile 任务失败
无法为配置 ':react-native-community_slider:releaseCompileClasspath' 解析所有文件。
无法转换 react-native-0.71.0-rc.0-release.aar (com.facebook.react:react-native:0.71.0-rc.0) 以匹配属性 {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}。未找到 react-native-0.71.0-rc.0-release.aar (com.facebook.react:react-native:0.71.0-rc.0)。
已在Maven中央仓库对应路径搜索但未找到该文件
错误2:java.lang.StackOverflowError
仅提示堆栈溢出,无额外错误信息。
此外,构建过程提示使用了废弃的Gradle特性,与Gradle 8.0不兼容。
解决方案
解决依赖解析失败问题
清理并重建依赖缓存
在项目Android目录下执行命令清理Gradle缓存:./gradlew cleanBuildCache随后删除项目根目录的
node_modules文件夹、Android目录下的.gradle文件夹,重新执行:npm install ./gradlew assembleRelease若另一台电脑使用了私有Maven仓库,需在当前电脑的
android/build.gradle中添加对应仓库配置。替换RC版本为稳定版
React Native 0.71.0-rc.0为候选版本,可能存在Maven仓库缺失Release包的情况。建议升级至同系列稳定版本(如0.71.12),修改package.json中的react-native版本号后,执行npm install重新构建。强制Slider库适配项目RN版本
在android/app/build.gradle中为Slider库添加依赖排除,强制使用项目自身的React Native版本:dependencies { implementation(project(':react-native-community_slider')) { exclude group: 'com.facebook.react', module: 'react-native' } }
解决StackOverflowError问题
增大Gradle堆内存
修改android/gradle.properties文件,调整JVM堆内存参数:org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=512m降级Gradle版本
由于构建提示与Gradle 8.0不兼容,可将Gradle版本降级至项目适配的版本(如7.5.1),修改android/gradle/wrapper/gradle-wrapper.properties中的distributionUrl:distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip
内容的提问来源于stack exchange,提问作者Mashood Ali

