Jetier是什么?例如,要使用androidx打包的依赖项创建新项目,此新项目需要将以下行添加到 gradle.properties 文件:
android.enableJetifier=true
那么“启用jetifier”是什么意思呢?
tmb3ates1#
假设您熟悉AndroidX,如果不熟悉,请参见@this post。Jetifier会自动将所有依赖项中的support libraries转换为AndroidX,如果您不将其设置为true,则您的项目将同时拥有support(got deprecated after 28.0.0 version)和AndroidX包,这是多余的。
AndroidX
Jetifier
support libraries
true
如果你的依赖项中有PhotoView.java,那就使用支持库AppCompatImageView。
PhotoView.java
AppCompatImageView
import android.support.v7.widget.AppCompatImageView;
这个类现在被转移到androidx包中,那么PhotoView将如何获得androidx AppCompatImageView呢?应用程序仍然在设备中运行。
androidx
PhotoView
这次是谁跑的Jetifier,在构建时转换所有依赖项的支持包。
jetier会在构建项目时将android.support.v7.widget.AppCompatImageView转换为androidx.appcompat.widget.AppCompatImageView。
android.support.v7.widget.AppCompatImageView
androidx.appcompat.widget.AppCompatImageView
从Support Libraries迁移到AndroidX时,启用Jetier非常重要。
请参阅this post以了解有关AndroidX的更多信息。
您的代码可能会显示编译时错误后,启用Jetier使用依赖类。您可以删除.idea,.gradle和重新同步项目删除。
.idea
.gradle
tpxzln5u2#
今年的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或Semantic Versioning。对于开发者来说,这意味着我们不必对所有支持库使用相同的支持库版本。每个支持或更好地说,AndroidX库将维护自己的版本。对于开发人员来说,另一个优势是我们不必关心在项目中为所有支持库维护相同的版本。关于Jetifier,它在构建时转换所有依赖项的支持包。Jetifier工具可迁移依赖于支持库的库,使其依赖于等效的AndroidX包。该工具允许您直接迁移单个库,而无需使用Android Studio捆绑的Android gradle插件。要在项目中使用AndroidX,我们必须将项目的targetSdkVersion设置为28,并在gradle. properties文件中添加以下2行。
android.useAndroidX=true android.enableJetifier=true
我希望这能回答你的问题。
This link具有所有支持库组件与其AndroidX对应部件的Map。也请参考This博客了解关于AndroidX的详细解释
6yjfywim3#
Jetier帮助将安卓项目迁移到AndroidX。Jetier有助于使第三方库与您的AndroidX项目兼容**。
如果您在Android项目中未使用任何第三方库,则无需使用Jetier,因为Jetier仅在您迁移到AndroidX时帮助“使第三方库”与您的项目兼容。因此,要使您的项目使用Jetier,请在gradle.properties中编写以下代码。
android.enableJetifier=true android.useAndroidX=true
如果您没有迁移到AndroidX,而是使用以前使用Android库的方式(例如:com.android.support),那么这些第三方库不需要兼容,因为这些第三方库已经兼容了以前使用Android库的方式。在这种情况下,你不需要使用Jetier,所以现在,你不需要写上面给出的行,或者你可以简单地写如下,以改变未来迁移到androidx的值:-
android.enableJetifier=false android.useAndroidX=false
pkwftd7m4#
捷迪耶
来自官方文件当此标志设置为true时,Android插件会自动迁移现有的第三方库,通过重写其二进制文件来使用AndroidX依赖项。如果未指定此标志,则默认为false。这对于兼容性非常有用。当使用者使用androidX,而生产者使用support时。例如,当AndroidX上的项目要使用依赖项时,该依赖项使用support library而不是AndroidXExample(https://stackoverflow.com/a/58557383/4770877)
androidX
support
support library
zkure5ic5#
jetifier是一个方便的工具,可以在构建时自动将dependencies迁移到AndroidX。如果没有它,在迁移之前,您需要使用的每个依赖项都有一个AndroidX版本,而这可能在一段时间内不会发生。有一个重要的限制需要注意:jetifier只对打包的工件有效,对你的源代码无效,你需要自己更新源代码要启用AndroidX,您需要向gradle.properties文件添加2个标志。第一个标志告诉Android插件使用AndroidX软件包而不是AppCompat,第二个标志将启用Jetifier:
dependencies
gradle.properties
AppCompat
请参阅this、this帖子以了解有关AndroidX的更多信息
z5btuh9x6#
将这两行添加到buid.gradle中
buid.gradle
6条答案
按热度按时间tmb3ates1#
假设您熟悉
AndroidX
,如果不熟悉,请参见@this post。Jetifier
会自动将所有依赖项中的support libraries
转换为AndroidX
,如果您不将其设置为true
,则您的项目将同时拥有support(got deprecated after 28.0.0 version)和AndroidX包,这是多余的。* 例如 *
如果你的依赖项中有
PhotoView.java
,那就使用支持库AppCompatImageView
。这个类现在被转移到
androidx
包中,那么PhotoView
将如何获得androidxAppCompatImageView
呢?应用程序仍然在设备中运行。这次是谁跑的
Jetifier,在构建时转换所有依赖项的支持包。
jetier会在构建项目时将
android.support.v7.widget.AppCompatImageView
转换为androidx.appcompat.widget.AppCompatImageView
。* 结论 *
从Support Libraries迁移到AndroidX时,启用Jetier非常重要。
请参阅this post以了解有关AndroidX的更多信息。
信息
您的代码可能会显示编译时错误后,启用Jetier使用依赖类。您可以删除
.idea
,.gradle
和重新同步项目删除。tpxzln5u2#
今年的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或Semantic Versioning。对于开发者来说,这意味着我们不必对所有支持库使用相同的支持库版本。每个支持或更好地说,AndroidX库将维护自己的版本。
对于开发人员来说,另一个优势是我们不必关心在项目中为所有支持库维护相同的版本。
关于Jetifier,它在构建时转换所有依赖项的支持包。
Jetifier工具可迁移依赖于支持库的库,使其依赖于等效的AndroidX包。该工具允许您直接迁移单个库,而无需使用Android Studio捆绑的Android gradle插件。
要在项目中使用AndroidX,我们必须将项目的targetSdkVersion设置为28,并在gradle. properties文件中添加以下2行。
我希望这能回答你的问题。
This link具有所有支持库组件与其AndroidX对应部件的Map。
也请参考This博客了解关于AndroidX的详细解释
6yjfywim3#
Jetier帮助将安卓项目迁移到AndroidX。
Jetier有助于使第三方库与您的AndroidX项目兼容**。
如果您在Android项目中未使用任何第三方库,则无需使用Jetier,因为Jetier仅在您迁移到AndroidX时帮助“使第三方库”与您的项目兼容。因此,要使您的项目使用Jetier,请在gradle.properties中编写以下代码。
如果您没有迁移到AndroidX,而是使用以前使用Android库的方式(例如:com.android.support),那么这些第三方库不需要兼容,因为这些第三方库已经兼容了以前使用Android库的方式。在这种情况下,你不需要使用Jetier,所以现在,你不需要写上面给出的行,或者你可以简单地写如下,以改变未来迁移到androidx的值:-
pkwftd7m4#
捷迪耶
来自官方文件
当此标志设置为true时,Android插件会自动迁移现有的第三方库,通过重写其二进制文件来使用AndroidX依赖项。如果未指定此标志,则默认为false。
这对于兼容性非常有用。当使用者使用
androidX
,而生产者使用support
时。例如,当AndroidX
上的项目要使用依赖项时,该依赖项使用support library
而不是AndroidX
Example(https://stackoverflow.com/a/58557383/4770877)zkure5ic5#
jetifier是一个方便的工具,可以在构建时自动将
dependencies
迁移到AndroidX
。如果没有它,在迁移之前,您需要使用的每个依赖项都有一个AndroidX版本,而这可能在一段时间内不会发生。有一个重要的限制需要注意:jetifier只对打包的工件有效,对你的源代码无效,你需要自己更新源代码
要启用AndroidX,您需要向
gradle.properties
文件添加2个标志。第一个标志告诉Android插件使用AndroidX
软件包而不是AppCompat
,第二个标志将启用Jetifier
:请参阅this、this帖子以了解有关AndroidX的更多信息
z5btuh9x6#
将这两行添加到
buid.gradle
中