允许不安全的协议,android gradle

时间:2021-07-30 05:33:11

标签: android android-studio build.gradle

我最近将我的工作室更新为北极狐,但我的项目出现错误

A problem occurred configuring root project 'so10'.
> Could not resolve all dependencies for configuration ':classpath'.
   > Using insecure protocols with repositories, without explicit opt-in, is     unsupported. Switch Maven repository 
'maven3(http://oss.sonatype.org/content/repositories/snapshots)' to redirect to a secure protocol (like HTTPS) or allow insecure protocols.
 See https://docs.gradle.org/7.0.2/dsl/org.gradle.api.artifacts.repositories.UrlArtifactRepository.html#org.gradle.api.artifacts.repositories.UrlArtifactRepository:allowInsecureProtocol for more details. 

这是我出现问题的地方

repositories {
    // maven { url 'https://maven.fabric.io/public' }
    maven { url "https://jitpack.io" }
    maven { url 'https://raw.github.com/Raizlabs/maven-releases/master/releases' }
    maven { url 'http://oss.sonatype.org/content/repositories/snapshots'}
    maven { url "https://plugins.gradle.org/m2/" }
    maven { url 'https://maven.google.com'  }
    google()
    mavenCentral()
    jcenter()
}

我该如何解决?

3 个答案:

答案 0 :(得分:18)

对于 Gradle 7+ 版本中不安全的 HTTP 连接,我们需要指定一个布尔值 allowInsecureProtocol 为 true 到 MavenArtifactRepository 闭包。
由于您收到了 sonatype 存储库的此错误,因此您需要按如下方式设置存储库:

repositories {
    //  maven { url "https://maven.fabric.io/public" }
    maven {
        url "https://jitpack.io"
    }
    maven {
        url "https://raw.github.com/Raizlabs/maven-releases/master/releases"
    }
    maven {
        url "http://oss.sonatype.org/content/repositories/snapshots"
        allowInsecureProtocol = true
    }
    maven {
        url "https://plugins.gradle.org/m2/"
    }
    maven {
        url "https://maven.google.com"
    }
    google()
    mavenCentral()
    jcenter()
}

答案 1 :(得分:4)

或者您可以将 HTTP 替换为 HTTPS

答案 2 :(得分:0)

请注意,从 Gradle 7 开始,任何 不安全的 URL 都会被阻止,不仅针对存储库,因此应用脚本也会失败。

apply from: "http://mycompany.com/buildscript.gradle"
<块引用>

不支持从不安全的 URI 应用脚本插件,而无需明确选择加入。

如果您因任何原因无法使用 HTTPS,请执行以下操作:

apply from: resources.text.fromInsecureUri("http://mycompany.com/buildscript.gradle")

但是,如果我是 Gradle 开发人员,我会在 org.gradle.allow-insecure-protocol=true 中设置一个 gradle.properties 并完成。我已经为此打开了 https://github.com/gradle/gradle/issues/18006