我正在使用以下RecyclerView
:
<androidx.recyclerview.widget.RecyclerView ... />
在
build.gradle
中具有以下依赖性:implementation 'androidx.recyclerview:recyclerview:1.0.0'
在android studio的
RecyclerView
模式下单击Design
前面的下载按钮后下载的。我在
Oreo
上运行我的应用程序,它运行良好。但是,当我在
KitKat
上运行该应用程序时,该应用程序被终止,因此我注释掉RecyclerView
及其相关的源代码,然后再次运行该应用程序,这次应用程序在KitKat
上正常运行,因此我意识到问题是RecyclerView
版本的KitKat
。现在我做了一些研究,发现我必须使用:
implementation 'com.android.support:recyclerview-v7:28.0.0'
和以下xml标签:
<android.support.v7.widget.RecyclerView ... />
现在我的问题是
<androidx.recyclerview.widget.RecyclerView ... />
implementation 'androidx.recyclerview:recyclerview:1.0.0'
和
<android.support.v7.widget.RecyclerView ... />
implementation 'com.android.support:recyclerview-v7:28.0.0'
哪一个是为哪个目的而创建的,哪个应该在哪种情况下使用?为什么android studio下载
KitKat
不支持的版本而不是下载几乎旧版android所支持的版本?谢谢!!! 最佳答案
两个RecyclerView依赖项之间有什么区别?RecyclerView
支持库和RecyclerView
AndroidX库具有相同的用途。主要区别在于软件包名称。 AndroidX主要是重新打包和重新命名的支持库,其主要目的是简化Android开发过程。所有支持库功能仍然存在于AndroidX中,但是最新的功能和开发现已转移到AndroidX。但这并不意味着不赞成使用支持库。请参阅Support Library文档中的以下说明
:
注意:随着Android 9.0(API级别28)的发布,
支持库版本AndroidX,它是
喷气背包AndroidX库包含现有的支持库
并且还包括最新的Jetpack组件。
您可以继续使用支持库。历史文物
(那些版本为27或更早版本,并打包为android.support。*)
仍可在Google Maven上使用。但是,所有新图书馆
开发将在AndroidX库中进行。
我们建议在所有新项目中使用AndroidX库。您
还应该考虑将现有项目迁移到AndroidX。
因此,您应该为最近的项目迁移到AndroidX。
但是,当我在KitKat上运行该应用程序时,该应用程序被终止,因此我注释掉RecyclerView及其相关源代码,然后再次运行该应用程序,这次应用程序在KitKat上正常运行,因此我意识到问题出在RecyclerView KitKat版本。
这可能是您代码中的错误,或者可能性最小的是AndroidX RecyclerView内部的错误。没有您的错误日志,我们无法找到问题。因此,您需要在问题中提供错误日志。
哪一个是为哪个目的而创建的,哪个应该在哪种情况下使用?
对于新项目,您应该迁移到AndroidX。但是对于紧密依赖需要支持库作为依赖项的库的旧项目,您需要执行以下操作之一:
将库升级到AndroidX(这很繁琐,可能不值得付出努力)
继续使用支持库。
在android.enableJetifier
中使用gradle.properties
,请参见Migrating to AndroidX