什么是 Jetifier?例如,要使用 androidx-packaged 依赖项创建一个新项目,这个新项目需要在 gradle.properties 文件中添加以下行:
android.enableJetifier=true
那么它是什么意思 - “启用 jetifier”?
原文由 Ksenia 发布,翻译遵循 CC BY-SA 4.0 许可协议
假设您熟悉 AndroidX
。如果没有,请查看@ 这篇文章。
Jetifier
will convertsupport libraries
of all your dependencies toAndroidX
automatically, if you don’t set it totrue
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
并重新同步项目来删除它。
原文由 Khemraj Sharma 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答851 阅读✓ 已解决
2 回答2.1k 阅读
2 回答966 阅读✓ 已解决
1 回答747 阅读✓ 已解决
2 回答865 阅读
2 回答801 阅读
1 回答744 阅读
今年的 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 的官方文档
要在项目中使用 AndroidX,我们必须将项目的 targetSdkVersion 设置为 28 ,并在 gradle.properties 文件中添加以下两行。
我希望这会回答你的问题。
编辑
此链接 包含所有支持库组件与其 AndroidX 对应部分的映射。
另请参阅 此 博客以获取有关 AndroidX 的详细说明