替换AndroidGradle存储库中的jcenter()
根据JFrog,他们将在 2021 年 5 月 1 日淘汰 Bintray(包括 JCenter)。
为了为此做准备,我打开了我的build.gradle并替换jcenter()为mavenCentral(). 我build.gradle现在看起来像这样(删除了一些部分):
buildscript {
repositories {
google()
// jcenter()
mavenCentral()
}
dependencies {
// ...
}
}
allprojects {
repositories {
google()
// jcenter()
mavenCentral()
maven {
url "https://jitpack.io"
}
}
}
但是,自从用 替换jcenter()后mavenCentral(),我收到此错误:
A problem occurred configuring root project 'Redacted'.
> Could not resolve all artifacts for configuration ':classpath'.
> Could not find org.jetbrains.trove4j:trove4j:20160824.
Searched in the following locations:
- https://dl.google.com/dl/android/maven2/org/jetbrains/trove4j/trove4j/20160824/trove4j-20160824.pom
- https://repo.maven.apache.org/maven2/org/jetbrains/trove4j/trove4j/20160824/trove4j-20160824.pom
Required by:
project : > com.android.tools.build:gradle:4.1.2 > com.android.tools.build:builder:4.1.2 > com.android.tools:sdk-common:27.1.2
Possible solution:
- Declare repository providing the artifact, see the documentation at https://docs.gradle.org/current/userguide/declaring_repositories.html
我可以添加另一个存储库来解决这个问题,还是com.android.tools:sdk-common需要更新以使用不同版本的org.jetbrains.trove4j:trove4j?
更新:版本 4.1.3 仍然存在相同的问题。
回答
JetBrains 已复制 org.jetbrains.trove4j:trove4j:20160824到 Maven Central,从而解决了此错误。
如果您使用尚未迁移到 Maven Central 的其他依赖项,您应该直接联系他们。
更新: “我们听取了社区的意见,并将无限期地将 JCenter 保留为只读存储库。我们的客户和社区可以继续依赖 JCenter 作为 Java 包的可靠镜像。” 来源
更新: Google 正在修复构建工具 4.2 和 4.1。来源
更新:您可以尝试使用依赖项解析规则。
顶级依赖项com.android.tools.build:gradle开始使用较新版本的trove4jin 7.0.0-alpha01。(7.0.0-alpha12目前是最新的。)
依赖链:
com.android.tools.build:gradle:7.0.0-alpha01 -> com.android.tools.build:builder:7.0.0-alpha01 -> com.android.tools:sdk-common:27.3.0-alpha01 -> org.jetbrains.intellij.deps:trove4j:1.0.20181211
但是,此版本仍处于 alpha 阶段,需要 Android Studio 4.3+,而该版本甚至还不是 Beta。
我在这里向谷歌提交了一个错误:https : //issuetracker.google.com/issues/179291081