Что Jetifier?

что такое Jetifier? Например, чтобы создать новый проект с использованием зависимостей, упакованных в androidx, этот новый проект должен добавить следующую строку в gradle.свойства:

android.enableJetifier=true

Итак, что это значит - "включить jetifier"?

2 ответов


в этом году Google I/O (18), Google объявила Jetpack, который установлен / коллекция библиотек, чтобы облегчить жизнь разработчика.

Jetpack включает ранее введенные компоненты архитектуры Android (ViewModel, Room, Paging, LiveData и т. д.), а также недавно введенные компоненты архитектуры, такие как WorkManager, Navigation. Кроме этого ранец также имеет другой набор библиотек, как AndroidX, AndroidKTX и т. д.

AndroidX новая структура пакета для Библиотеки поддержки андроида любят поддержка, databinding, конструкция etc.

например, теперь на подопечных разработчики будут использовать androidx.привязка данных. вместо android.привязка данных. при импорте библиотек в наши проекты

Это позволяет Google добавить SemVer или Семантическое Управление Версиями там библиотечные пакеты. Для разработчиков это означает, что нам не нужно использовать одну и ту же версию библиотеки поддержки для всех библиотек поддержки. Каждый поддержка или лучше сказать, библиотека AndroidX будет поддерживать свою собственную версию.

еще одно преимущество для разработчиков заключается в том, что нам не нужно заботиться о сохранении одной и той же версии для всей библиотеки поддержки в нашем проекте.

чтобы использовать AndroidX в out project, мы должны установить targetSdkVersion для нашего проекта в 28 и добавить следующие 2 строки gradle.свойства.

android.useAndroidX=true

android.enableJetifier=true

Я надеюсь, это ответит на ваш запрос.

редактировать

этой ссылке имеет отображение всех компонентов библиотеки поддержки со своей частью счетчика AndroidX.

Также см. этой блог для подробного объяснения о AndroidX


предполагая, что вы знаете о AndroidX, Если нет-см. @этот пост.

Jetifier преобразует все ваши зависимостей support libraries до AndroidX автоматически, если вы не установите его true тогда ваш проект будет иметь как поддержку (получил depricated после версии 28.0.0), так и пакет AndroidX, который является избыточным.

у вас все еще могут быть ошибки времени компиляции с использованием зависимости, но Jetifier преобразует код во время выполнения, поэтому приложение будет работать wihout крахи.

если у вас PhotoView.java в вашей зависимости. Это использует библиотеку поддержки.

import android.support.v7.widget.AppCompatImageView;

это перемещено в androidx пакет, поэтому он покажет ошибку.

import androidx.appcompat.widget.AppCompatImageView;

ваш код может показать ошибки. поскольку PhotoView использует старый класс библиотеки поддержки.

image2

image1

но это приложение все равно будет работать, кто сделал это бежать ?

Jetifier, который преобразует весь пакет поддержки зависимостей во время выполнения.

вывод

включение Jetifier важно при миграции из Библиотек to AndroidX.

посмотреть этот пост чтобы понять больше об AndroidX.