如何在Android Studio项目中查找使用特定外部库的文件

8

问题

在Android Studio项目的“外部库”中,我有这些库“stax-stax-api:1.0.1@jar”和“xpp3:xpp3:1.1.3.3@jar”。它们导致了问题,使我不能构建该项目。我似乎弄不清楚它们是如何进入到项目中的或者它们在哪里被使用。

enter image description here

enter image description here

当我现在构建项目时收到的错误消息为:

"Error:Error: xpp3定义了与Android提供的类冲突的类。解决方案包括找到更新的版本或没有相同问题的替代库(例如,对于httpclient使用HttpUrlConnection或okhttp),或者使用jarjar之类的工具重新打包库。 [DuplicatePlatformClasses]"

错误消息很好,但它并没有告诉我首先谁在使用这个库。

问题

有没有一种简单的方法来找出它们在项目中的使用位置?或者有一种容易但不需要查看每个文件的方法吗?这是一个具有大量文件的多模块项目。如果我可以删除它们,这会告诉我,但是没有删除选项。

这可能是我忽视的非常简单的事情。感谢任何帮助。如有需要,我很乐意添加更多信息。

我尝试过的

我尝试了“分析依赖项”,但它没有显示我可以看到的任何引用。

更新:我忘记提到我也尝试过./gradlew app:dependencies,但它只告诉我我的项目依赖于这些库。我已经知道这一点了。是否有一种方式可以获得更具体的信息,以便我可以删除这些库?

更新2: 接受的答案确实起作用,但我需要重定向控制台输出。


@cricket_007,“重复”的回答实际上并没有回答我的问题。我知道这些东西是依赖关系,但它们具体来自哪里,我该如何去除它们? - Michael Vescovo
好的,我已经解决了这个问题,但解决方案只是运气(偶然发现一个未使用的依赖项导致了问题)。所谓的“重复”不幸地没有帮助,但没有办法将其标记为非重复。 - Michael Vescovo
我把库放回去尝试获取输出,但现在当我运行gradle任务时,它甚至显示更少的输出。如果我通过终端运行,输出会被截断,所以我无法向上滚动足够高来查看它。找不到如何获取更多输出,但还没有仔细寻找,这是一个不同的问题。等我弄清楚如何做到这一点后,我会尝试更新问题,但现在需要处理其他事情。(谁知道也许包括答案)。 - Michael Vescovo
1
如果输出内容对终端来说太大,可以将其重定向到一个文件中。./gradlew app:dependencies > dependencies.txt - OneCricketeer
1
好的,谢谢你的提示。分析结果后,我没有看到任何直接引用我添加回来的库的参考。然而,我认为如果我不知道这个库并按照这个树形结构进行操作,我也会解决这个问题。所以现在我更有信心地说它确实是一个重复的问题。感谢你的帮助!不确定为什么正常的Gradle任务没有输出所有这些数据 - 当在tasks->help->dependencies下双击任务时。 - Michael Vescovo
显示剩余5条评论
2个回答

11
gradle app:dependencies

它将展示您的项目的依赖关系树

在这个链接中,很好地解释了命令以及如何使用它。

如果控制台输出被剪切,请使用此命令来重定向输出:

./gradlew app:dependencies > dependencies.txt

我尝试过这个,但它只给了我高级别的信息。你知道如何让它更具体吗?我想这可能是正确的路径;找到正确的Gradle命令。我将不得不研究Gradle。 - Michael Vescovo
1
好的,这确实有效,但我需要从 cricket_007 添加到你的答案中的提示。 - Michael Vescovo
谢谢,Roberto - Sergio

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接