我正在使用以下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

07-24 09:49
查看更多