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

Android Studio中Gradle 7.2同步报非安全协议错误如何解决?

问题原因

你的报错已经明确指向BintrayJCenter2(http://jcenter.bintray.com/)使用了未配置白名单的HTTP协议,这个JCenter源不是你手动写在顶层配置里的,是你引入的React Native第三方模块(比如react-native-unimodules、其他原生依赖)内部默认携带的旧配置,所以你之前加的allowInsecureProtocol没有覆盖到这个隐式引入的源。
另外你现有配置存在AGP版本不统一、依赖源重复声明、手动配置了HTTP源三个问题,也是同步失败的诱因。

修复步骤

  1. 统一AGP版本
    你根目录gradle.build/android里声明的AGP版本是4.2.0,gradle.build/app里又声明了7.2版本,二者冲突,统一修改为7.2版本即可:
    修改根目录gradle.build/android的dependencies块:
// 删掉旧的4.2.0版本声明,替换为下面的
classpath("com.android.tools.build:gradle:7.2")
  1. 修改所有手动配置的HTTP源为HTTPS
    修改gradle.build/app里的maven源配置,把HTTP的repo1源改成HTTPS:
// 旧的配置:maven { url "http://repo1.maven.org/maven2" }
// 替换为:
maven { url "https://repo1.maven.org/maven2" }
  1. 全局覆盖隐式引入的JCenter源
    在根目录gradle.build/android的allprojects -> repositories块里加入JCenter的全局配置,覆盖第三方依赖内部引入的HTTP版JCenter,同时删掉块内重复声明的google()、mavenCentral()配置(同一层级重复声明会导致配置优先级冲突):
allprojects {
    repositories {
        google()
        mavenCentral(){
            allowInsecureProtocol = true
        }
        // 新增JCenter全局配置
        jcenter {
            allowInsecureProtocol = true
            url "https://jcenter.bintray.com/"
        }
        mavenLocal()
        maven {
            url("$rootDir/../node_modules/react-native/android")
        }
        maven {
            url("$rootDir/../node_modules/jsc-android/dist")
        }
        maven { url 'https://www.jitpack.io' }
    }
}

如果你的项目没有必须依赖JCenter的包,可以直接去掉JCenter配置,Gradle会自动从其他配置过的源拉取依赖,稳定性更高。

  1. 清理缓存重新同步
  • 关闭Android Studio,删除项目根目录下的.gradle文件夹
  • 清除全局Gradle缓存:Windows系统删除C:\Users\你的用户名\.gradle\caches目录,Mac系统删除~/.gradle/caches目录
  • 重新打开Android Studio,触发Gradle同步即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 02:54:06