允许不安全的协议,android gradle

WIS*_*SHY 22 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. 
Run Code Online (Sandbox Code Playgroud)

这是我出现问题的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()
}
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

Jay*_*Jay 42

对于 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()
}
Run Code Online (Sandbox Code Playgroud)


Phi*_*her 26

对于那些使用 Kotlin DSL 的人来说,属性名称是不同的isAllowInsecureProtocol

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


Abh*_*kar 14

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

apply from: "http://mycompany.com/buildscript.gradle"
Run Code Online (Sandbox Code Playgroud)

不支持在没有明确选择加入的情况下从不安全的 URI 应用脚本插件。

如果您出于某种原因无法使用 HTTPS,请执行以下操作:

apply from: resources.text.fromInsecureUri("http://mycompany.com/buildscript.gradle")
Run Code Online (Sandbox Code Playgroud)

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


Ash*_*min 12

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

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

maven {
        url "http://tokbox.bintray.com/maven/"
        allowInsecureProtocol = true
    }
Run Code Online (Sandbox Code Playgroud)


bas*_*ure 8

或者你可以HTTPHTTPS.

  • 如果您使用自己的不支持 SSL 的镜像,也许您不能。 (3认同)
  • 不仅如此,您还需要一个受信任的证书。 (2认同)

Pet*_*ley 6

对我来说,使用 Gradle 7.x 在最近的工作空间中编写赋值语句“allowInsecureProtocol = true”停止工作**(原因尚不清楚。)我发现当我改为编写setAllowInsecureProtocol(true)时,一切正常再次。

 maven {    url "http://myinsecure/repository..."; 
            setAllowInsecureProtocol(true);
            // allowInsecureProtocol = true
        }
Run Code Online (Sandbox Code Playgroud)

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

另外,关于使用https 的评论- 我明白 - 这是很好的建议,但在这种情况下,这是我无法控制的。

** 参考 build.gradle ...maven 子句