替换 Android Gradle 存储库中的 jcenter()

Posted

技术标签:

【中文标题】替换 Android Gradle 存储库中的 jcenter()【英文标题】:Replacing jcenter() in Android Gradle Repositories 【发布时间】:2021-05-08 23:08:27 【问题描述】:

根据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 版仍然存在同样的问题。

【问题讨论】:

【参考方案1】:

JetBrains copied org.jetbrains.trove4j:trove4j:20160824 到 Maven Central,它解决了这个错误。 ?

如果您使用尚未迁移到 Maven Central 的其他依赖项,您应该直接与他们联系。


更新:“我们听取了社区的意见,并将无限期将 JCenter 保留为只读存储库。我们的客户和社区可以继续依赖 JCenter 作为Java 包的可靠镜像。” source

更新:Google 正在努力修复构建工具 4.2 和可能的 4.1。 source

更新:你可以试试dependency resolve rule。


***依赖项com.android.tools.build:gradle 开始在7.0.0-alpha01 中使用更新版本的trove4j。 (7.0.0-alpha12 is currently the latest.)

依赖链: 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 版本。

我在这里向 Google 提交了一个错误:https://issuetracker.google.com/issues/179291081

【讨论】:

感谢您的更新和链接,但我们现在能做些什么来解决这个问题?谷歌链接中的 resolutionStrategies 似乎不起作用。

以上是关于替换 Android Gradle 存储库中的 jcenter()的主要内容,如果未能解决你的问题,请参考以下文章

两个官方 android 库中的重复类,gradle 失败

如何将 git 存储库中的 jar 文件添加为 gradle 中的依赖项?

Gradle在本地Maven存储库中找不到现有的依赖项

Android Gradle 本地化部署 maven

Android Gradle 本地化部署 maven

从 Bamboo 中的单独 GIT 存储库中提取文件