You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

MacBook Air 2017中Flutter项目构建失败:unable to find valid certification path to requested target

解决Flutter在MacBook Air 2017上构建时的PKIX证书路径问题

从你的错误日志和配置来看,核心问题是JVM无法验证Google Maven仓库的SSL证书,导致Gradle无法下载com.android.tools.build:gradle:4.2.1依赖。下面是针对性的解决方案,你可以按步骤尝试:

步骤1:修正项目级build.gradle的仓库配置

你的buildscript里用了http://maven.google.com,这个地址现在会自动重定向到HTTPS地址,反而容易引发证书验证问题。同时jcenter已经停止维护,建议替换为官方推荐的仓库声明:

修改你的项目级build.gradlebuildscriptrepositories部分:

buildscript {
    ext.kotlin_version = '1.3.50'
    repositories {
        google() // 替换原http://maven.google.com
        mavenCentral() // 替换已停止服务的jcenter
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:4.2.1'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

步骤2:确保Gradle使用的JDK正确导入证书

你提到已经把证书添加到Android Studio,但Gradle可能使用的是独立的JDK环境,导致证书未生效。请按以下操作:

  1. 打开Android Studio,进入File > Project Structure > SDK Location,复制JDK location的路径(比如你的路径是/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home)。
  2. 打开终端,执行以下命令导入证书(替换<JDK_PATH>为复制的路径,<CERT_FILE>为你下载的证书文件路径):
sudo keytool -importcert -file <CERT_FILE> -keystore <JDK_PATH>/lib/security/cacerts -alias "google_maven"

默认的cacerts密码是changeit,执行时需要输入验证。

步骤3:清理缓存并重新构建

  1. 执行Flutter清理命令:
flutter clean
  1. 删除项目根目录下的.gradle文件夹(如果存在)。
  2. 重新执行构建:
flutter build apk

额外排查项

  • 确认Mac的系统代理、VPN或第三方代理工具(如Charles、Clash)已完全关闭,这类工具可能会拦截SSL连接导致证书验证失败。
  • 你的Flutter版本2.2.2是稳定版,但可以尝试升级到较新的稳定版(比如3.x系列),新版本通常会修复一些Gradle相关的兼容性问题。

如果以上步骤无效,可临时在gradle.properties中指定Gradle使用的信任库(仅用于排查,不建议长期使用):

org.gradle.jvmargs=-Djavax.net.ssl.trustStoreType=JKS -Djavax.net.ssl.trustStore=/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/lib/security/cacerts -Djavax.net.ssl.trustStorePassword=changeit

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

火山引擎 最新活动