You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

M1芯片Mac执行react-native run-android出现PKIX证书路径构建失败报错

报错本质

该PKIX路径错误是JVM无法验证Google Maven仓库的SSL证书,导致无法拉取构建依赖,与M1芯片本身兼容性无关。

排查步骤
  • 验证网络访问:在终端执行curl -v https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/4.1.2/gradle-4.1.2.pom,若能正常返回内容,说明网络链路正常,问题出在Java证书库;若返回报错,优先排查系统是否开启代理、VPN或公司内网的SSL劫持。
  • 检查Java版本:确认所用JDK为官方发布版本,第三方修改版JDK可能缺失根证书导致验证失败。
  • 检查Gradle配置:查看~/.gradle/gradle.properties是否存在冗余代理配置,与Android Studio的代理设置保持一致,终端执行构建命令默认不会复用Android Studio的代理配置。
解决方法

方法1:替换为国内镜像源(最便捷)

修改项目根目录的build.gradle,将原有国外仓库替换为阿里云镜像,避免访问国外源的证书和网络问题:

buildscript {
    ext {
        buildToolsVersion = "30.0.0"
        minSdkVersion = 21
        compileSdkVersion = 30
        targetSdkVersion = 30
        supportLibVersion   = "28.0.0"
    }
    repositories {
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/jcenter' }
        maven { url 'https://maven.aliyun.com/repository/mavencentral' }
        // 注释原有国外源
        // google()
        // jcenter()
        // maven { url "https://maven.google.com" }
        // mavenCentral()
    }
    dependencies {
        classpath('com.android.tools.build:gradle:4.1.2')
        classpath('com.google.gms:google-services:4.3.0')
    }
}

allprojects {
    repositories {
        mavenLocal()
        maven {
            url("$rootDir/../node_modules/react-native/android")
        }
        maven {
            url("$rootDir/../node_modules/jsc-android/dist")
        }
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/jcenter' }
        maven { url 'https://maven.aliyun.com/repository/mavencentral' }
        maven { url 'https://www.jitpack.io' }
        // 注释原有国外源
        // google()
        // jcenter()
        // maven { url "https://maven.google.com" }
    }
}

修改完成后执行cd android && ./gradlew clean,再重新运行npx react-native run-android即可。

方法2:导入证书到Java证书库(需保留谷歌源时使用)

  1. 导出目标站点证书:浏览器访问https://dl.google.com,点击地址栏的锁形标识,将证书导出为PEM格式,保存为google.crt。
  2. 获取JDK路径:终端执行/usr/libexec/java_home获取当前使用的JDK安装路径。
  3. 导入证书:执行命令sudo keytool -import -alias google -file 本地google.crt的存储路径 -keystore ${JDK路径}/jre/lib/security/cacerts,证书库默认密码为changeit,导入完成后重启终端重新构建即可。
    若使用Android Studio内置JDK,JDK路径为/Applications/Android Studio.app/Contents/jre/Contents/Home,按上述步骤导入对应证书库即可。

方法3:统一JDK环境

M1 Mac易出现终端JDK与Android Studio内置JDK不一致的问题,可在shell配置文件(zsh对应~/.zshrc,bash对应~/.bash_profile)中添加如下配置,指定使用Android Studio内置JDK:

export JAVA_HOME="/Applications/Android Studio.app/Contents/jre/Contents/Home"
export PATH=$JAVA_HOME/bin:$PATH

执行source ~/.zshrc(对应bash执行source ~/.bash_profile)使配置生效后,重新执行构建命令即可。

内容的提问来源于stack exchange,提问作者Oliver D

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 05:36:01