React Native环境下如何手动安装Gradle的.pom文件(如gradle-3.5.3.pom)?
解决React Native搭建中因公司代理/网络导致的Gradle依赖与守护进程问题
我完全明白这种被公司网络限制卡住的痛苦——之前帮几个同事解决过类似的问题,咱们一步步来搞定它,核心思路就是绕过网络直接手动安装依赖,同时修复Gradle守护进程的异常。
一、先搞定「无法解析classpath构件」的无网络报错
这个问题本质是Gradle没法从Google Maven仓库拉取com.android.tools.build:gradle:3.5.3相关依赖包,咱们直接手动下载后本地引入:
获取所需依赖包
- 两种方式:要么找一台能正常访问外网的机器,跑一次
npx react-native run-android,等依赖下载完成后,从~/.gradle/caches/modules-2/files-2.1/com/android/tools/build/gradle/3.5.3目录把所有文件拷贝过来;要么直接对应版本找齐gradle-3.5.3.pom、gradle-3.5.3.jar及其依赖的其他构件。 - 把这些文件放到你项目根目录新建的
libs文件夹里。
- 两种方式:要么找一台能正常访问外网的机器,跑一次
修改Gradle配置使用本地依赖
- 打开项目根目录的
build.gradle(不是app模块下的那个),注释掉原有的远程仓库,添加本地仓库路径:repositories { // google() // jcenter() flatDir { dirs 'libs' } maven { url 'file:///你拷贝的Gradle缓存全路径' } // 如果用了缓存拷贝的方式就加这个 } - 再修改dependencies里的classpath,直接指定本地jar包:
dependencies { classpath files('libs/gradle-3.5.3.jar') // React Native的gradle插件等其他依赖,也可以用同样方式手动下载后引入 }
- 打开项目根目录的
二、解决「无法连接Gradle守护进程」的有网络报错
这个问题大多是代理干扰或者守护进程本身异常,咱们这么处理:
杀掉异常的守护进程
- 打开命令行执行:
gradlew.bat --stop # Windows用户 ./gradlew --stop # Linux/Mac用户 - 也可以直接通过任务管理器/活动监视器,强制结束所有
java.exe或gradle相关进程。
- 打开命令行执行:
让Gradle跳过代理
- 在你的用户目录下找到
.gradle/gradle.properties(没有就新建),添加以下配置:systemProp.http.proxyHost= systemProp.http.proxyPort= systemProp.https.proxyHost= systemProp.https.proxyPort= systemProp.http.nonProxyHosts=localhost,127.0.0.1 - 这样能避免公司代理对Gradle守护进程的网络请求造成干扰。
- 在你的用户目录下找到
手动启动指定端口的守护进程
- 进入项目的android目录,执行:
gradlew.bat --daemon -PreactNativeDevServerPort=8088 # Windows ./gradlew --daemon -PreactNativeDevServerPort=8088 # Linux/Mac - 等守护进程启动成功后,再执行安装命令:
gradlew.bat app:installDebug -PreactNativeDevServerPort=8088 # Windows
- 进入项目的android目录,执行:
三、验证效果
完成以上步骤后,再执行你原来的命令:
npx react-native run-android --no-jetifier --port=8088
如果还有问题,检查下本地依赖的路径是否正确,或者用./gradlew status查看守护进程的状态是否正常。
内容的提问来源于stack exchange,提问作者JaimeRivera
相关产品推荐
相关产品推荐

