Могу ли я обновить библиотеку поддержки Android с 27.1.1 до AndroidX 1.0.0? - PullRequest
1 голос
/ 27 марта 2019

У меня сложная кодовая база, и я пытаюсь быть осторожным перед переходом на AndroidX. Моя библиотека поддержки в настоящее время 27.1.1. Могу ли я перенести его на AndroidX 1.0.0? Я видел, как люди мигрировали с 28.0.0 до 1.0.0, но не с 27.1.1. Что если сторонние зависимости используют более старую версию библиотеки поддержки? Обеспечивает ли установка android.enableJetifier значение true обратной совместимости для v4, v7, v13 или версии библиотеки (26, 27.1, 28)? Я не совсем понимаю.

Ответы [ 2 ]

0 голосов
/ 27 марта 2019

Библиотеки поддержки 28.0.0 и Androidx 1.0.0 были построены из одного и того же исходного кода , поэтому, вероятно, будет проще обнаружить любые ошибки, связанные с API, если вы сначала перейдете на 28.0.0.

Jetifier изменяет файлы классов в процессе сборки, заменяя все имена классов android.support эквивалентами androidx и com.google.android.material. Это влияет на все файлы классов, включенные в вашу сборку, даже те, которые были получены из сторонних библиотек. Таким образом, это обеспечивает обратную совместимость с более старыми версиями библиотеки поддержки.

В артефакты теперь встроена обратная совместимость для более старых версий Android - androidx.viewpager будет просто работать на Android SDK 14 и выше. Что бы это ни стоило, артефакты v4, v7 и v13 не означают «поддержку Android SDK 4 + / 7 + / 13 +» с момента выпуска 26.0.0 .

0 голосов
/ 27 марта 2019

Если у вас есть какие-либо зависимости Maven, которые не были перенесены в пространство имен AndroidX, система сборки Android Studio также перенесет эти зависимости для вас, если в файле gradle.properties для следующих двух флагов задано значение true:

android.useAndroidX = true

android.enableJetifier = true

Чтобы перенести существующий проект, в котором не используются сторонние библиотеки с зависимостями, требующими преобразования, вы можете установить андроид.Используйте флаг Android для true и флаг android.enableJetifier для false.

больше информации: https://developer.android.com/jetpack/androidx/migrate

...