I recently updated my android studio to Arctic Fox and got an error in my project
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.
This is my gradle where the problem occurs
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()
}
How do I solve it?
7
Answers
For insecure HTTP connections in Gradle 7+ versions, we need to specify a boolean allowInsecureProtocol as true to
MavenArtifactRepository
closure.Since you have received this error for
sonatype
repository, you need to set the repositories as below:or you can just replace
HTTP
withHTTPS
.Note that Gradle 7 onwards, any insecure URL is blocked, not only for repositories, so applying scripts would also fail.
If you can’t use HTTPS for whatever reasons, then do the following:
However, if I were a Gradle dev, I’d provide a
org.gradle.allow-insecure-protocol=true
to be set in thegradle.properties
and be done. I’ve opened https://github.com/gradle/gradle/issues/18006 for that.For those using the Kotlin DSL, the property name is different
isAllowInsecureProtocol
Add allowInsecureProtocol = true for all unsecure http in repositories e.g.
I tried to switch to maven2 solved my problem
For me, coding the assignment statement "allowInsecureProtocol = true" stopped working** in a recent workspace using Gradle 7.x (the reason as yet, is unknown.)
I found that when I instead coded setAllowInsecureProtocol(true) and it was OK again.
I have no info about exactly when the assignment statement stopped working.
Also, regarding comments about using https instead – I get it – it’s good advice, but in this instance that is out of my control.
** referring to the build.gradle …maven clauses