appcompat依赖项来自哪里?

4
在我的Android项目的app模块中,我有这个: implementation 'androidx.appcompat:appcompat:1.5.0'
我的活动是class AppActivity:AppCompatActivity()
然后我通过添加implementation 'com.google.android.material:material:1.8.0'将我的主题更改为材料设计。
此时,我不确定是否应该删除appcompat,因为AppCompatActivity来自它。为了证明它,我删除了implementation 'androidx.appcompat:appcompat:1.5.0',同步后一切正常。
另外,我可以检查AppCompatActivity来自appcompat:1.5.0(很抱歉图片不太清晰)。

enter image description here

所以我的问题是它是从哪里来的,因为我已经删除了它?
为了找出它是否来自其他库,我尝试将其添加回去,但升级到1.6.1: implementation 'androidx.appcompat:appcompat:1.6.1'
然后,如果它是从其他库中使用的,它应该仍然是1.5.0。
但是我得到了:

enter image description here

有什么方法可以了解它吗?谢谢!

编辑

正如被接受的答案所描述的那样,使用 项目结构 -> 依赖项

一开始我也尝试过这个方法,但没有找到我的答案,这里我再详细展开一下。例如:

我选择了:androidx.appcompat:appcompat:1.5.0 然后在右侧的目标模块/工件中显示您要检查其来源的模块。这是我的项目图像:

enter image description here

那么我知道它来自于material:1.8.0,我可以无论如何删除appcompat。这不是来自第三方库。


1
请查看依赖树。您还可以排除或强制版本。 - ADM
有时候你可能想要显式地声明一个依赖, 而不是通过另一个依赖来依赖它(也就是传递依赖)。你可以使用 https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin 来检查传递依赖,以及其他内容。 - Alvin Dizon
2个回答

2
如果在使用AndroidStudio,可以按照以下步骤: 进入 项目结构 -> 依赖项 -> <所有模块>,滚动查找 AppCompat 库并点击不需要的版本,就可以查看详细的依赖关系了。

enter image description here


1

也许你在gradle文件中实现了两个appcompat库,或者只是gradle的缓存。这里有一种简单的方法来找出:

  1. 第一步:进入你所依赖的库
  2. 第二步:在你的Android Studio中点击此按钮 enter image description here
  3. 你会看到屏幕左侧就像这样 enter image description here 之后,你就会发现所依赖的库

哎呀,我在我的项目中有两个constaintlayout依赖 enter image description here 所以,只需要在我的gradle文件中删除其中一个即可


我删除了gradle缓存。并检查了“External libraries”,那里只有1.5.0版本。在gradle中没有appcompact。仍然不确定它来自哪里。 - William Hu
如果您的项目依赖于某些第三方库,那么可能其中包含了appcompat库。 - Godrick
那么应该删除第三方库并逐个检查吗? - William Hu

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