允许不安全的协议,android gradle

uqcuzwp8  于 2022-11-20  发布在  Android
关注(0)|答案(7)|浏览(717)

我最近将我的android工作室更新为Arctic Fox,并在我的项目中得到了一个错误

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.

这是我的Gradle,问题发生的地方

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()
}

我该怎么解决呢?

lnlaulya

lnlaulya1#

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

  1. Groovy DSL
repositories {
    maven {
        url "http://oss.sonatype.org/content/repositories/snapshots"
        allowInsecureProtocol = true
    }
    // other repositories ...
}

1.KotlinDSL

repositories {
    maven {
        url = uri("http://oss.sonatype.org/content/repositories/snapshots")
        isAllowInsecureProtocol = true
    }
    // other repositories ...
}
chy5wohz

chy5wohz2#

或者您可以将HTTP替换为HTTPS

ulmd4ohb

ulmd4ohb3#

对于 使用 Kotlin DSL 的 用户 , 属性 名称 不同 isAllowInsecureProtocol

maven {
    url = uri("http://oss.sonatype.org/content/repositories/snapshots")
    isAllowInsecureProtocol = true
}

中 的 每 一 个

h6my8fg2

h6my8fg24#

为存储库中的所有不安全http添加allowInsecureProtocol = true,例如

maven {
        url "http://storage.googleapis.com/r8-releases/raw"
        allowInsecureProtocol = true
    }

maven {
        url "http://tokbox.bintray.com/maven/"
        allowInsecureProtocol = true
    }
9gm1akwq

9gm1akwq5#

请注意,从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中设置并完成。

jqjz2hbq

jqjz2hbq6#

由于某种未知原因,在最近使用Gradle 7.x的工作区中,编写赋值语句“allowInsecureProtocol = true”时停止工作我发现,当我改为编写setAllowInsecureProtocol(true)**时,它又正常了。

maven {    url "http://myinsecure/repository..."; 
            setAllowInsecureProtocol(true);
            // allowInsecureProtocol = true
        }

我没有关于赋值语句停止工作的确切时间的信息。

  • 此外,关于使用https代替的评论-我明白-这是一个很好的建议,但在这种情况下,这是我无法控制的。*
    **参考build.gradle... maven条款
w6lpcovy

w6lpcovy7#

我尝试切换到maven2解决了我的问题

maven2 {
            url "http://oss.sonatype.org/content/repositories/snapshots"
            allowInsecureProtocol = true
        }

相关问题