Mint Linux下React-Native构建安卓应用遇证书验证及Gradle依赖错误
run-android的Gradle依赖问题 我处理过不少代理环境下的React Native构建故障,你遇到的Could not resolve com.android.tools.build:gradle:2.3.3本质就是Gradle没法通过代理拉取依赖包——既然你已经用Android Studio成功打包过,说明代理本身是通的,只是React Native的Gradle构建没正确适配代理配置而已。
试试下面这几个步骤:
1. 给Gradle手动配置代理信息
React Native的Android构建默认不会自动继承系统代理,得在项目的Gradle配置里手动添加代理参数:
打开项目根目录下的android/gradle.properties,添加(替换成你的实际代理信息):
systemProp.http.proxyHost=your-proxy-host systemProp.http.proxyPort=your-proxy-port systemProp.http.nonProxyHosts=localhost|127.0.0.1|*.your-internal-domain.com systemProp.https.proxyHost=your-proxy-host systemProp.https.proxyPort=your-proxy-port systemProp.https.nonProxyHosts=localhost|127.0.0.1|*.your-internal-domain.com
如果代理需要账号密码认证,再追加这几行:
systemProp.http.proxyUser=your-proxy-username systemProp.http.proxyPassword=your-proxy-password systemProp.https.proxyUser=your-proxy-username systemProp.https.proxyPassword=your-proxy-password
2. 替换Gradle依赖源为国内镜像
官方源在代理环境下经常访问不稳定,换成国内镜像能大幅提升依赖拉取成功率。打开项目根目录下的android/build.gradle,修改repositories块:
把原来的google()、jcenter()替换成:
maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/jcenter' } maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
注意要同时修改buildscript和allprojects两个区域里的repositories部分。
3. 调整Gradle Wrapper的下载源(可选)
如果连Gradle本身的安装包都拉不下来,打开gradle/wrapper/gradle-wrapper.properties,把distributionUrl里的官方地址换成国内镜像,比如:
distributionUrl=https://mirrors.cloud.tencent.com/gradle/gradle-3.3-all.zip
(React Native 0.54对应的Gradle版本是3.3,别选错了)
4. 清除缓存后重新构建
先清理之前的失败缓存,在项目根目录执行:
cd android && ./gradlew clean
然后回到根目录重新运行构建命令:
react-native run-android
这些步骤应该能解决你的问题——毕竟Android Studio能正常构建,说明代理链路没问题,只是Gradle的配置没跟上而已。
内容的提问来源于stack exchange,提问作者fabiobh

