Что такое Jetifier? Например, чтобы создать новый проект с использованием зависимостей из пакета androidx, этот новый проект должен добавить следующую строку в файл gradle.properties :
android.enableJetifier=true
Так что это значит - «включить jetifier»?
implementation "com.commonsware.cwac:document:0.3.0"
файлdependencies
. Эта версия библиотеки имеет транзитивную зависимость отcom.android.support:support-annotations:27.0.2
. Однако вы хотите использоватьandroidx.annotation:annotation
как часть других зависимостей AndroidX. Jetifier как-нибудь обновится,com.commonsware.cwac:document
чтобы использоватьandroidx.annotation:annotation
.Ответы:
В этом году на 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 в проекте, мы должны установить targetSdkVersion для нашего проекта на 28 и добавить следующие 2 строки в файл gradle.properties .
android.useAndroidX=true android.enableJetifier=true
Надеюсь, это ответит на ваш вопрос.
РЕДАКТИРОВАТЬ
В этой ссылке есть сопоставление всех компонентов библиотеки поддержки с их аналогом AndroidX.
Также обратитесь к этому блогу для получения подробных сведений об AndroidX.
источник
Предполагая, что вы знакомы с
AndroidX
. Если нет, см. @ Этот пост .Например
Если у вас есть
PhotoView.java
файл dependency. Это использует библиотеку поддержкиAppCompatImageView
.import android.support.v7.widget.AppCompatImageView;
Этот класс теперь перемещен в
androidx
пакет, так как жеPhotoView
получить androidxAppCompatImageView
? И приложение все еще работает на устройстве.Кто совершил этот пробег?
Jetifier преобразуется
android.support.v7.widget.AppCompatImageView
вandroidx.appcompat.widget.AppCompatImageView
при создании проекта.Вывод
Включение Jetifier важно при переходе с библиотек поддержки на AndroidX .
Смотрите этот пост более понять о AndroidX.
Информация
Ваш код может показывать ошибки времени компиляции после включения Jetifier при использовании классов зависимостей. которую вы можете удалить, удалив
.idea
,.gradle
и проект повторной синхронизации.источник
Jetifier помогает перенести проект Android на AndroidX .
Jetifier помогает сделать стороннюю библиотеку совместимой с вашим проектом AndroidX.
Если вы не используете стороннюю библиотеку в своем проекте Android, вам не нужно использовать Jetifier, потому что Jetifier помогает только «сделать стороннюю библиотеку» совместимой с вашим проектом, если вы переходите на AndroidX. Итак, чтобы ваш проект использовал Jetifier, вы напишите ниже код в gradle.properties .
android.enableJetifier=true android.useAndroidX=true
Если вы не переходите на AndroidX и не используете предыдущий способ использования библиотек Android (например, com.android.support ), то эти сторонние библиотеки не нужно делать совместимыми, поскольку эти сторонние библиотеки уже совместимы с предыдущим способом с помощью библиотек Android. В этом случае вам не нужно использовать Jetifier, поэтому теперь вам не нужно писать строки, указанные выше, или вы можете просто написать, как показано ниже, чтобы изменить значения в будущем для перехода на androidx: -
android.enableJetifier=false android.useAndroidX=false
источник
Jetifier
Jetifier представляет собой удобный инструмент , который автоматически переносит свой
dependencies
ToAndroidX
во время сборки. Без него вам потребовались бы все зависимости, которые вы используете, чтобы иметь версию AndroidX, прежде чем вы сможете мигрировать, а этого, вероятно, не произойдет в течение некоторого времени.Следует отметить важное ограничение: средство проверки работает только с упакованными артефактами. Он не работает с вашим исходным кодом, который вы должны обновить самостоятельно.
для включения AndroidX вам нужно добавить в
gradle.properties
файл 2 флага . Первый флаг указывает подключаемому модулю Android использоватьAndroidX
пакеты вместоAppCompat
, а второй флаг включаетJetifier
:android.useAndroidX=true android.enableJetifier=true
Смотрите это , это сообщение , чтобы понять больше о AndroidX
источник
Из официального документа
Это полезно для совместимости. Когда Потребитель использует,
androidX
а Производитель используетsupport
. Например, когда ваш проектAndroidX
хочет использовать зависимость, которая используетsupport library
вместоAndroidX
[Пример]источник
Добавьте эти две строки android.useAndroidX = true
android.enableJetifier = true
в buid.gradle Это сработало для меня
источник