【发布时间】:2018-05-17 09:14:41
【问题描述】:
问题
在 Android Studio 项目的项目视图中的“外部库”下,我有这些库“stax-stax-api:1.0.1@jar”和“xpp3:xpp3:1.1.3.3@jar”。他们给我带来了问题,以至于我无法构建项目。我似乎无法弄清楚它们是如何到达那里或在哪里使用的。
我现在构建时收到的错误消息是:
"Error:Error: xpp3 定义的类与 Android 现在提供的类冲突。解决方案包括查找没有相同问题的较新版本或替代库(例如,对于 httpclient,请改用 HttpUrlConnection 或 okhttp ),或者使用类似 jarjar 的东西重新打包库。[DuplicatePlatformClasses]"
错误消息很好,只是它没有告诉我谁首先在使用这个库。
问题
有没有一种简单的方法可以找出它们在项目中的使用位置?或者甚至是一种简单但不需要查看每个文件的方法?这是一个包含大量文件的多模块项目。如果我可以删除它们,这会告诉我,但没有删除选项。
这可能是我忽略的非常简单的事情。任何帮助表示赞赏。很高兴根据要求添加更多信息。
我尝试过的
我尝试“分析依赖关系”,但它没有显示任何我可以看到的引用。
更新:我忘了提到我也尝试过./gradlew app:dependencies,但它只告诉我我的项目依赖于这些库。我已经知道了。有没有办法获得一些更具体的信息,以便我可以删除这些库?
更新 2: 接受的答案确实有效,但我需要重定向控制台输出。
【问题讨论】:
-
@cricket_007 “重复”实际上并没有回答我的问题。我知道这些东西是依赖关系,但它们具体来自哪里以及如何删除它们?
-
好吧,我已经解决了这个问题,但解决方案只是运气(偶然我发现了一个没有使用的依赖项导致了问题)。不幸的是,所谓的“重复”没有帮助,但没有办法将其标记为不重复。
-
删除库可以在不同的答案中找到。你问如何找到哪些库是其他库的一部分,这就是副本的用途。这会向您显示 artifactId 和 groupId,您可以从中明确排除项目中已编译的项目
-
如果输出对于终端来说太大,重定向到一个文件。
./gradlew app:dependencies > dependencies.txt -
好的,谢谢你的提示。在分析结果后,我看不到对我添加回的库的任何直接引用。但是我认为如果我不知道这个库并遵循这棵树,我也会解决这个问题。所以是的,我现在会更自信地说它确实是重复的。谢谢你的帮助!不知道为什么正常的 gradle 任务没有输出所有数据 - 双击任务 - >帮助 - >依赖项下的任务时。
标签: android intellij-idea android-gradle-plugin