Trove4j库无法解析

mra*_*tor 54 android maven android-gradle-plugin

尝试编译我的应用程序时出现以下错误:

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':myProject'.
> Could not resolve all files for configuration ':myProject:classpath'.
   > Could not find org.jetbrains.trove4j:trove4j:20160824.
     Searched in the following locations:
         https://repo1.maven.org/maven2/org/jetbrains/trove4j/trove4j/20160824/trove4j-20160824.pom
         https://repo1.maven.org/maven2/org/jetbrains/trove4j/trove4j/20160824/trove4j-20160824.jar
         https://maven.fabric.io/public/org/jetbrains/trove4j/trove4j/20160824/trove4j-20160824.pom
         https://maven.fabric.io/public/org/jetbrains/trove4j/trove4j/20160824/trove4j-20160824.jar
         https://maven.google.com/org/jetbrains/trove4j/trove4j/20160824/trove4j-20160824.pom
         https://maven.google.com/org/jetbrains/trove4j/trove4j/20160824/trove4j-20160824.jar
     Required by:
         project :metam > com.android.tools.build:gradle:3.0.0-beta2 > com.android.tools.build:gradle-core:3.0.0-beta2 > 
com.android.tools.lint:lint:26.0.0-beta2 > com.android.tools.lint:lint-checks:26.0.0-beta2 > com.android.tools.lint:lint-
api:26.0.0-beta2 > com.android.tools.external.com-intellij:intellij-core:26.0.0-beta2
Run Code Online (Sandbox Code Playgroud)

它似乎缺少IDE所需的库?

Sni*_*las 102

可以通过在buildscript部分中添加jcenter()作为存储库来解决此问题.

buildscript {
  repositories {
     jcenter()
  }

  dependencies {
    classpath 'com.android.tools.build:gradle:3.0.0-beta2'
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 具体来说,将`mavenCentral()`替换为`jcenter()` (20认同)
  • 关于如何在不添加“jcenter()”的情况下解决此问题有什么建议吗? (4认同)
  • 这必须添加到您的模块中,而不是projetc的中。 (2认同)
  • jcenter 将于 2021 年 5 月 1 日停用。此解决方案可能只能在此之前有效。具体来说,请勿将“mavenCentral()”替换为“jcenter()”。 (2认同)

Bam*_*omy 52

除了Snicolas回答:

如果你有类似的东西:

allprojects {
    repositories {
        mavenCentral()
        google()
        jcenter() //also add it here!!!
    }
}
Run Code Online (Sandbox Code Playgroud)

在你的build.gradle档案中; 也加在那里.

  • jcenter 将在 5 月份关闭,现在有什么建议吗? (5认同)

Coo*_*ind 15

由于 jCenter 将 在 May关闭,您应该更改为root/build.gradle

buildscript {
    repositories {
        google()
        gradlePluginPortal()
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
        // org.jetbrains.trove4j:trove4j:20160824.
        gradlePluginPortal()
    }
}
Run Code Online (Sandbox Code Playgroud)

另请参阅/sf/answers/4631799441/以添加未包含在 Maven 中的库。

现在我们可以无错误地构建 apk。


geo*_*sey 8

如果您在 2021 年 5 月 1 日之后看到此错误,则可能是因为jcenter 已关闭。Android Gradle 插件 (AGP) 需要它。谷歌开发人员表示,他们正在使用从mavenCentral()AGP 7开始的更新版本的库,并希望将其移植到 AGP 4.2 和 4.1 中。所以首先,尝试升级到 AGP 7。如果我没有用更新编辑这篇文章,请检查它是否在任何较低的 AGP 版本中。

但是,如果您无法升级 AGP,那么在最初发布时(2021 年 2 月),我能找到的唯一带有 trove 软件包的存储库是在 pentaho 上,它似乎归 Hitachi 所有,所以我认为它是安全的。

buildscript {
   repositories {
         maven { url "https://nexus.pentaho.org/content/groups/omni" }
   }

   dependencies {
         classpath 'org.jetbrains.trove4j:trove4j:20160824'
   }
}
Run Code Online (Sandbox Code Playgroud)

这不是一个理想的解决方案。据我所知,这个 repo 可能是私有的。寻找可能在我之后发布的更好答案。


小智 7

我解决了在 build.gradlew 中删除的这个问题

repositories {
    jcenter()
}
Run Code Online (Sandbox Code Playgroud)

并将 mavenCentral() 更改为 jcenter() 并删除 google()


Isl*_*ssi 6

从 jcenter 迁移? jcenter 将于5 月 1 日日落

如果您要从 jcenter 迁移,您可能会遇到此问题。发生此问题是因为 Trove4j 库是从 jcenter 获取的,而您在从 jcenter 迁移时删除了 jcenter 存储库。

解决方案:

将以下内容添加到项目 build.gradle 中:

maven { url 'https://plugins.gradle.org/m2/' } 
Run Code Online (Sandbox Code Playgroud)

它应该添加到:

  1. build.gradle(peoject) -> buildscript -> 存储库

  2. build.gradle(peoject) -> allprojects -> 存储库

    buildscript {
    
        repositories {
            google()
            mavenCentral()
            // ** Add this line **
            maven { url 'https://plugins.gradle.org/m2/' }
        }
    }
    
    allprojects {
        repositories {
            google()
            mavenCentral()
            // ** Add this line **
            maven { url 'https://plugins.gradle.org/m2/' }
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)

由于 jcenter 将于 2021 年 5 月 1 日停用。应该从项目中删除 jcenter 存储库。这意味着应该删除所有出现在“jcenter()”的地方。这可能会导致 jcenter 托管的库出现问题。您应该提供另一个托管库的存储库,例如 maven。一些未维护的库可能不会移动到任何其他存储库。在这种情况下,您可能需要考虑为库打开一个问题或不使用它。您将在 5 月 1 日面临所有这些问题,如果您现在不进行迁移,您可能无法构建您的应用程序