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

已有项目出现SSL Certificate Expired Exception导致Gradle构建失败求助

解决Gradle构建时的SSL Certificate Expired Exception(Fabric仓库证书过期)

从你贴出的错误日志里,一眼就能定位到问题核心:

Caused by: java.security.cert.CertificateExpiredException: NotAfter: Fri Jul 09 00:13:44 IST 2021

你项目依赖的https://maven.fabric.io/public仓库SSL证书早在2021年7月就过期了,Gradle没法建立安全的HTTPS连接拉取io.fabric.tools:gradle插件,直接导致构建失败。

根本解决方案:移除Fabric依赖并迁移到Firebase

Fabric早在2020年就被Google Firebase收购,官方早已停止对旧Fabric服务和仓库的维护,这才是问题的本质。正确做法是彻底移除Fabric相关配置,迁移到Firebase对应服务:

  1. 删除根目录build.gradle中的Fabric插件依赖
    找到类似代码并删除:
buildscript {
    dependencies {
        // 删掉这一行
        classpath 'io.fabric.tools:gradle:1.+'
    }
}
  1. 清理模块级build.gradle的Fabric配置
  • 删除插件应用语句:apply plugin: 'io.fabric'
  • 删除所有Fabric相关依赖,比如:implementation 'com.crashlytics.sdk.android:crashlytics:2.+'
  1. 迁移到Firebase Crashlytics(如果之前用Fabric做崩溃上报)
    在根目录build.gradle添加Firebase插件依赖:
buildscript {
    dependencies {
        // 添加Firebase Crashlytics插件
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.9'
        // 确保Google服务插件存在
        classpath 'com.google.gms:google-services:4.3.15'
    }
}

在模块级build.gradle应用插件并替换依赖:

plugins {
    id 'com.android.application'
    id 'com.google.gms.google-services'
    id 'com.google.firebase.crashlytics'
}

dependencies {
    implementation 'com.google.firebase:firebase-crashlytics:18.3.2'
}

临时应急方案(仅测试场景使用,生产环境绝对禁用)

如果只是临时需要构建项目,不想立刻迁移,可以临时关闭该仓库的SSL验证(注意:这会引入安全风险,仅限测试):
在仓库配置中添加allowInsecureProtocol = true

repositories {
    maven {
        url "https://maven.fabric.io/public"
        allowInsecureProtocol = true // 仅临时使用,别在生产环境开
    }
}

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

火山引擎 最新活动