什么是 Jetifier?

新手上路,请多包涵

什么是 Jetifier?例如,要使用 androidx-packaged 依赖项创建一个新项目,这个新项目需要在 gradle.properties 文件中添加以下行:

 android.enableJetifier=true

那么它是什么意思 - “启用 jetifier”?

原文由 Ksenia 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

今年的 Google I/O (18),Google 宣布了 Jetpack,它是一组库,可以让开发人员的生活更轻松。

Jetpack 包括之前引入的 Android 架构组件(ViewModel、Room、Paging、LiveData 等)以及新引入的架构组件,如 WorkManager、Navigation。除了这个 Jetpack 还有其他库集,如 AndroidX、AndroidKTX 等。

AndroidX 是 Android 支持库(如支持、数据绑定、设计等)的新包结构。

例如,现在开发人员将使用 androidx.databinding。 而不是 android.databinding。 在我们的项目中导入库时

这使 Google 能够在库包中添加 SemVer语义版本控制。对于开发人员,这意味着我们不必为所有支持库使用相同的支持库版本。每个支持或更好地说 AndroidX 库都将维护自己的版本控制。

开发人员的另一个优势是我们不必关心为项目中的所有支持库维护相同的版本。

关于 Jetifier,它会在构建时转换所有依赖的支持包。根据 Jetifier 的官方文档

Jetifier 工具迁移依赖库的库以依赖等效的 AndroidX 包。该工具允许您直接迁移单个库,而不是使用与 Android Studio 捆绑在一起的 Android gradle 插件。

要在项目中使用 AndroidX,我们必须将项目的 targetSdkVersion 设置为 28 ,并在 gradle.properties 文件中添加以下两行。

 android.useAndroidX=true

android.enableJetifier=true

我希望这会回答你的问题。

编辑

此链接 包含所有支持库组件与其 AndroidX 对应部分的映射。

另请参阅 博客以获取有关 AndroidX 的详细说明

原文由 silwar 发布,翻译遵循 CC BY-SA 4.0 许可协议

假设您熟悉 AndroidX 。如果没有,请查看@ 这篇文章

Jetifier will convert support libraries of all your dependencies to AndroidX automatically, if you don’t set it to true then your project will have支持( 在 28.0.0 版本后被弃用)和 AndroidX 包,这是多余的。

例如

如果你有 PhotoView.java 在你的依赖中。使用支持库 AppCompatImageView

 import android.support.v7.widget.AppCompatImageView;

这个类现在移动到 androidx 包,那么 PhotoView 将如何获得 androidx AppCompatImageView ?应用程序仍在设备中运行。

谁让这次跑步?

Jetifier ,它在构建时转换所有依赖的支持包。

Jetifier 将在构建项目时将 android.support.v7.widget.AppCompatImageView 转换为 androidx.appcompat.widget.AppCompatImageView

结论

当您从 支持库 迁移到 AndroidX 时,启用 Jetifier 很重要

请参阅 这篇文章 以了解有关 AndroidX 的更多信息。

信息

在使用依赖类时启用 Jetifier 后,您的代码可能会显示编译时错误。您可以通过删除 .idea , .gradle 并重新同步项目来删除它。

图片2

图片1

原文由 Khemraj Sharma 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题