【问题标题】:ViewPager2 dependency confusionViewPager2 依赖混淆
【发布时间】:2021-06-29 05:44:08
【问题描述】:
我正准备尝试ViewPager2,但当我看到有人在他们的 gradle 文件中添加以下依赖声明时,我不明白:
implementation 'androidx.viewpager2:viewpager2:1.0.0'
我正在使用 AndroidX,即使没有在我的应用级 gradle 文件中添加它,我仍然可以访问 ViewPager2 类,并且可以将它添加到我的代码中。是否仅当项目仍在使用旧版 Android 支持库并且您只想使用特定的 AndroidX 组件(例如 ViewPager2)时才需要此行?
【问题讨论】:
标签:
android
androidx
android-viewpager2
【解决方案1】:
如果您可以看到项目中的 ViewPager2 类,而没有添加对 androidx.viewpager2:viewpager 库的显式依赖,那么您对 androidx.viewpager2:viewpager 库具有传递依赖。在这种情况下,您显式依赖的库之一依赖于 androidx.viewpager2:viewpager 库。
您可以运行dependencies Gradle 任务来查看您的应用程序的依赖关系图,并从中计算出您的哪些显式依赖关系引入了androidx.viewpager2:viewpager 库。在我的项目中,当我运行gradle :app:dependencies 任务时,我在依赖关系图中看到这是我的应用程序对com.google.android.material:material 的依赖关系,它引入了androidx.viewpager2:viewpager 库。
如果您愿意,您可以运行 dependencyInsight Gradle 任务以获得更直接的问题答案。例如,在我的项目中,如果我运行gradle :app:dependencyInsight --configuration debugCompileClasspath --dependency viewpager2,那么我看到的输出如下:
androidx.viewpager2:viewpager2:1.0.0
\--- com.google.android.material:material:1.4.0
\--- debugCompileClasspath