【问题标题】:What is the difference between two RecyclerView dependencies?两个 RecyclerView 依赖项有什么区别?
【发布时间】:2019-07-29 21:57:29
【问题描述】:

我正在使用以下RecyclerView

<androidx.recyclerview.widget.RecyclerView ... />

build.gradle中有如下依赖:

implementation 'androidx.recyclerview:recyclerview:1.0.0'

在android studio的Design模式下点击RecyclerView前面的下载按钮后下载。 我在Oreo 上运行我的应用程序,它运行良好。

但是当我在KitKat 上运行应用程序时,应用程序被杀死,所以我注释掉RecyclerView 及其相关源代码并再次运行应用程序,这次应用程序在KitKat 上正常运行,所以我意识到问题出在RecyclerViewKitKat 版本上。

现在我做了一些研究,发现我必须使用:

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 支持的那个?谢谢!!!

【问题讨论】:

  • Android 弃用了支持库并取而代之的是 AndroidX。这个answer 详细解释了如何使用它以及为什么它很好。
  • What is AndroidX的可能重复

标签: android android-recyclerview android-support-library android-support-design


【解决方案1】:

两个 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 上正常运行,所以我意识到问题出在KitKat 版本的 RecyclerView。

这可能是您代码中的错误,或者最不可能是 AndroidX RecyclerView 中的错误。没有您的错误日志,我们无法找到问题所在。因此,您需要在问题中提供错误日志。


哪个是为了什么目的而创建的,哪个应该在什么情况下使用?

对于新项目,您应该迁移到 AndroidX。但是对于您的遗留项目,它紧密依赖需要支持库作为依赖项的库,您需要执行以下操作之一:

  1. 将库升级到 AndroidX(这很乏味,可能不值得努力)
  2. 继续使用支持库。
  3. 在您的gradle.properties 中使用android.enableJetifier,请参阅Migrating to AndroidX

【讨论】:

  • 非常感谢先生。我很高兴你回答了
猜你喜欢
  • 2014-12-09
  • 2015-11-13
  • 2015-11-11
  • 1970-01-01
  • 2021-10-17
  • 2012-06-30
  • 2020-08-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多