什么是 Jetifier?

什么是 Jetifier?例如,要使用 androidx 打包的依赖项创建一个新项目,这个新项目需要在 Gradle 房地产公司文件中添加以下代码行:

android.enableJetifier=true

那么它是什么意思-“启用护身符”?

83196 次浏览

今年的 Google I/O (18) ,Google 发布了 Jetpack,它是一个集合库的集合,可以让开发者的生活更加轻松。

Jetpack 包括之前引入的 Android 架构组件(ViewModel、 Room、 Paging、 LiveData 等) ,以及新引入的架构组件,如 WorkManager、导航。除此之外,Jetpack 还有其他一些库,比如 AndroidX,AndroidKTX 等等。

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

例如,现在在病房开发人员将使用 数据绑定。而不是 数据绑定。,同时在我们的项目中导入库

这使得 Google 可以在这些库包中添加 永远语义版本控制。对于开发人员,这意味着我们不必为所有支持库使用相同的支持库版本。每一个支持或者更好的说,AndroidX 库将维护自己的版本控制。

对于开发人员来说,另一个好处是我们不必考虑为项目中的所有支持库维护相同的版本。

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

Jetifier 工具迁移了依赖于支持库的库 这个工具可以让你迁移一个 个人库,而不是使用 Android 的等级 与 Android Studio 捆绑的插件。

要在项目中使用 AndroidX,我们必须将项目的 targetSdkVersion 设置为 28,并在 Gradle 房地产公司文件中添加以下两行。

android.useAndroidX=true


android.enableJetifier=true

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

剪辑

这个链接 具有所有支持库组件与其 AndroidX 计数器部件的映射。

也请参考 这个博客对 AndroidX 的详细解释

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

Jetifier将转换所有依赖项的 support librariesAndroidX自动,如果你不设置它为 true然后你的 在28.0版本之后,这个支持(< a href = “ https://developer.android.com/subject/library/support-library/Amendment”rel = “ norefrer”> 被弃用 Version )和 安卓包,这是多余的

例如

如果依赖项中有 PhotoView.java,则使用支持库 AppCompatImageView

import android.support.v7.widget.AppCompatImageView;

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

谁跑的?

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

Jetifier 将转换 android.support.v7.widget.AppCompatImageViewandroidx.appcompat.widget.AppCompatImageView,而建设的项目。

结论

当您从 支援图书馆迁移到 安卓 时,启用 Jetifier 非常重要。

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

信息

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

image2

image1

老大

< strong > jtifier 是一个方便的工具,可以在构建时自动将 dependencies迁移到 AndroidX。如果没有它,在迁移之前,需要使用每个依赖项才能拥有 Android X 版本,而这可能在一段时间内不会发生。

需要注意的一个重要限制是: Jatifier 只对打包的工件起作用。它不能在源代码上工作,您需要自己更新源代码

要启用 AndroidX,需要向 gradle.properties文件添加2个标志。第一个标志告诉 Android Plugin 使用 AndroidX软件包而不是 AppCompat,第二个标志将启用 Jetifier:

android.useAndroidX=true
android.enableJetifier=true

参见 这个这个文章了解更多关于 AndroidX 的信息

Jetifier 有助于将 android 项目迁移到 安卓

Jetifier 有助于您的 AndroidX 项目创建 第三方兼容

如果你在你的 Android 项目中没有使用任何第三方库,那么你就不需要使用 Jetifier,因为 Jetifier 只能帮助你“使第三方库”与你的项目兼容,以防你要迁移到 AndroidX。因此,为了让您的项目使用 Jetifier,您需要在 Gradle 房地产公司中编写以下代码。

android.enableJetifier=true
android.useAndroidX=true

如果你没有迁移到 Android X 并且使用之前的 Android 库(例如: 机器人,支持) ,那么这些第三方库就不需要兼容了,因为这些第三方库已经与之前的 Android 库兼容了。在这种情况下,您不需要使用 Jetifier,所以现在,您不需要编写上面给出的行,或者您可以简单地编写如下,以便在将来更改这些值,以便移动到 androidx:-

android.enableJetifier=false
android.useAndroidX=false

老大

来自 官方文件

当这个标志设置为 true 时,Android 插件会自动迁移现有的第三方库,通过重写它们的二进制文件来使用 AndroidX 依赖项。如果未指定,则默认情况下标志为 false。

它对兼容性很有用。当消费者使用 androidX而生产者使用 support时。例如,当 AndroidX上的项目希望使用使用 support library而不是 AndroidX< sup > [示例] 的依赖项时

把这两行加起来 UseAndroidX = true

AbleleJetifier = true

生育,分级 这招对我很管用