React Native 代理配置

224 阅读2分钟

Android Studio代理配置

Android Studio中阿里云代理

Android/build.gradle:

repositories {
    google()
    maven { url = uri("https://maven.aliyun.com/repository/google")}
    maven { url = uri("https://maven.aliyun.com/repository/gradle-plugin")}
    maven { url = uri("https://maven.aliyun.com/repository/public")}
    maven { url = uri("https://maven.aliyun.com/repository/jcenter")}
    mavenCentral()
}

VSCode中代理配置

不光Android Studio中需要配置代理,在RN项目中node_modules下的一些插件也需要进行配置,不然你就会发现build的时候,有些请求仍然不走代理网址。

以下路径根据自己的项目情况去找:

  • node_modules@react-native\gradle-plugin\build.gradle.kts
  • node_modules@react-native\gradle-plugin\settings.gradle.kts
  • node_modules\react-native\settings.gradle.kts

1753065842476.png

Gradle下载

  • 下载地址:mirrors.aliyun.com/macports/di…
  • 在Android Studio中从上方的File选项中找到Settings打开 1753065332648.png
  • 在Android Studio中的项目里找到以下文件进行配置: Android/gradle/wrapper/gradle-wrapper.properties:
    distributionBase=GRADLE_USER_HOME
    distributionPath=wrapper/dists
    //这个目录是你的本地gradle目录
    distributionUrl=C:/Users/Administrator/.gradle/wrapper/dists/gradle-8.3-all/6en3ugtfdg5xnpx44z4qbwgas/gradle-8.3
    networkTimeout=10000
    validateDistributionUrl=true
    zipStoreBase=GRADLE_USER_HOME
    zipStorePath=wrapper/dists
  • node_modules/@react-native/gradle-plugin/gradle/wrapper/gradle-wrapper.properties
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=C:/Users/Administrator/.gradle/wrapper/dists/gradle-8.6
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

坑点

  • 阿里云镜像中存在一些未同步的库,比如com.android.tools.build:gradle:8.9.2,所以记得把google()放在最前面
  • 在配置本地的gradle时,记得下载xx-all.zip结尾的文件,不要去下载xx-bin.zip结尾的文件,因为xx-bin.zip文件缺少很多东西需要在sync时下载,会浪费很多时间。比如: mirrors.cloud.tencent.com/gradle/grad…
  • 如果上面配置了阿里云代理也没用,还是会下载一些依赖库,导致很漫长的等待,直接试试Android studio的proxy吧
  • 打开vpn的tun模式,在settings里搜索Proxy,添加代理,如下图:

1753151094344.png

  • npx react-native run-android 无法安装apk的问题

    因为我在使用命令行运行的时候一直无法启动apk,只能通过android studio来运行,这让我非常疑惑,我看其他人都是run-android的时候直接启动,而我一直提示以下报错:

Exception in thread "main" java.lang.NullPointerException: Cannot invoke "String.lastIndexOf(String)" because the return value of "java.net.URI.getPath()" is null at org.gradle.wrapper.GradleWrapperMain.main(SourceFile:47)

我试过gradlew clean也是上面的错误,期间我一直以为是:\android\gradle\wrapper\gradle-wrapper.jar文件的问题,最近突然想会不会是gradle文件包,我的gradle一直用的是本地加载,android studio加载的也是这个本地包,一直都可以build成功,我就没往那里想。本着试一试的想法,我就把gradle-wrapper.properties文件中distributionUrl从本地包换成了mirrors.cloud.tencent.com/gradle/grad… 结果就好了!这困扰我好久的问题竟然就这么好了,因为我的本地包也是从这个网址下载的,真的很奇怪。