Android 无法解析Trove4j库
尝试编译我的应用程序时出现以下错误:Android 无法解析Trove4j库,android,maven,android-gradle-plugin,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.trove
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
是否缺少IDE所需的库 这个问题可以通过在buildscript部分添加jcenter()作为存储库来解决
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0-beta2'
}
}
除了:
如果您有以下情况:
allprojects {
repositories {
mavenCentral()
google()
jcenter() //also add it here!!!
}
}
在
build.gradle
文件中;也可以将其添加到那里。只需删除.idea、.gradle和gradle文件夹,然后重新启动应用程序。在Android Studio中转到帮助->关于并检查您的版本。在build.gradle应用程序Mudule中输入该vesion,与在
classpath
line此处:
buildscript {
...
repositories {
...
}
dependencies {
...
classpath "com.android.tools.build:gradle:{THREE.DIGIT.VERSION}"
}
}
我解决了这个问题
在build.gradlew中删除
repositories {
jcenter()
}
然后将mavenCentral()更改为jcenter(),并删除google()尝试在
build.gradle
文件中将mavenCentral()
替换为jcenter()
allprojects {
repositories {
jcenter()
//.......
}
}
每次升级Gradle插件时,我都会遇到这种情况,所以我所做的和工作:
npmi
或warn更新项目中的所有节点模块react native link
将所有依赖项再次链接到您的android项目希望它能帮助一些人。如果你在2021年5月1日之后看到这个错误,可能是因为。Android Gradle插件(AGP)需要它。谷歌开发者表示,他们正在使用一个更新版本的库,从AGP7开始可以从
mavenCentral()
获得,并希望将其移植到AGP4.2和4.1中。因此,首先,尝试升级到AGP7。如果我没有对这篇文章进行过更新,请查看它是否存在于任何较低的AGP版本中
但是,如果您无法升级AGP,从发布的最初时间(2021年2月)起,我能找到的唯一一个trove套餐回购协议是pentaho,它似乎是日立所有的,所以我认为它是安全的
buildscript {
repositories {
maven { url "https://nexus.pentaho.org/content/groups/omni" }
}
dependencies {
classpath 'org.jetbrains.trove4j:trove4j:20160824'
}
}
这不是一个理想的解决方案。据我所知,这份回购协议可能是私人的。寻找一个更好的答案,可能会在我之后发布。由于jCenter将关闭,您应该更改
root/build.gradle
,以便:
buildscript {
repositories {
google()
gradlePluginPortal()
}
}
allprojects {
repositories {
google()
mavenCentral()
// org.jetbrains.trove4j:trove4j:20160824.
gradlePluginPortal()
}
}
另请参见添加Maven中未包含的库
现在,我们可以无错误地构建apk。从jcenter迁移?jcenter将于5月1日日落 如果要从jcenter迁移,则可能会遇到此问题。出现此问题是因为Trove4j库是从jcenter获取的,而您在从jcenter迁移时删除了jcenter存储库 解决方案: 将以下内容添加到project build.gradle中:
maven { url 'https://plugins.gradle.org/m2/' }
应将其添加到:
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/' }
}
}
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/' }
}
}
因为jcenter将于2021年5月1日日落。应从项目中删除jcenter存储库。这意味着应该删除“jcenter()”的所有引用。这可能会导致jcenter托管的库出现问题。您应该提供另一个托管库的存储库,如maven。某些未维护的库可能不会移动到任何其他存储库。在这种情况下,您可能需要考虑打开一个问题库或不使用它。您将在5月1日面临所有这些问题,如果您现在不进行迁移,您可能无法构建应用程序。您的环境中有代理吗?这需要在IDE上配置以下载gradle软件包。不确定。我该如何检查?首先,检查您电脑上的网络设置是否有代理谢谢,以前没有代理,现在也没有。具体来说,将
mavenCentral()
替换为jcenter()
,这必须添加到模块的渐变中,不是项目的。将jcenter添加到gradle文件中声明的所有存储库jcenter将于2021年5月1日日落。这个解决方案可能只在那时起作用。具体来说,不要将mavenCentral()
替换为jcenter()
。有没有关于如何在不添加jcenter()
的情况下修复此问题的建议?尽管我已经解决了每个库版本的冲突,并且还更新了构建工具、目标API等,但这对我来说很有效。。。我遇到了各种奇怪的错误(比如Trove4j或支持库版本的后续版本),甚至无法搜索那些旧版本从哪里冒出来。。。(不,实际上它回来了,所以它没有帮助…:/)最后,我不得不用jcenter()替换builtscript和app的maveCentral()存储库,这解决了Trove4j问题,但删除旧缓存文件和重新导入项目似乎至少稳定了构建过程的输出,用jcenter()替换mavenCentral()。它会有用的,谢谢。我错误地将jcenter()添加到“buildscript”部分而不是“allprojects”中。现在,jcenter将于5月份关闭,您有什么建议吗?最后,jcenter()即将关闭,因此此答案和类似的答案都不正确,还有。你有谷歌开发者讨论Trove4j和AGP后移的链接吗?@ScottMarkwell这是目前最正确的答案。@Akito,谢谢!