允许不安全的协议,android gradle



我最近更新了我的android studio到北极狐,在我的项目中得到了一个错误

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

怎么解?

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

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

或者直接用HTTPS代替HTTP

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

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

注意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=truegradle.properties中设置并完成。我打开了https://github.com/gradle/gradle/issues/18006。

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

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

对于我来说,编写赋值语句"allowInsecureProtocol = true"在最近使用Gradle 7的工作空间中停止工作**。X(原因尚不清楚)我发现,当我改为编码setAllowInsecureProtocol(true)然后又好了。

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

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

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

**表示构建。gradle……maven条款

我解决了这个问题,通过改变我的gradle版本。因为我的项目需要gradle版本低于Android Studio给出的。

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

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

相关内容

最新更新