AndroidX переносит зависимость / библиотеки - PullRequest
0 голосов
/ 26 сентября 2018

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

image1

image2

Причина этой ошибки

Поскольку PhotoViewкласс зависимостей, использующий android.support.v7.widget.AppCompatImageView, который больше не доступен в моем проекте.Потому что сейчас androidx.appcompat.widget.AppCompatImageView

Проект все еще выполняется?

Да, android.enableJetifier преобразовать эту зависимость в AndroidX во время выполнения, но я хочу избавиться от ошибок времени компиляции .

Есть ли быстрое исправление на данный момент?

Ответы [ 3 ]

0 голосов
/ 15 октября 2018

Если вы зависите от библиотеки, которая ссылается на старую библиотеку поддержки, Android Studio обновит эту библиотеку, чтобы она ссылалась на androidx, а не через перевод зависимостей.Преобразование зависимостей автоматически применяется плагином Android Gradle 3.2.0-alpha14, который переписывает байт-код и ресурсы зависимостей JAR и AAR (и транзитивных зависимостей) для ссылки на новые классы и артефакты, упакованные в androidx.Мы также предоставим автономный инструмент перевода в виде JAR.

Я вижу (используя ./gradlew app: dependencies), что проектная зависимость rxbinding обновляется до новой зависимости com.google.android.material.Передача com.google.android.material.snackbar.Snackbar в библиотечную функцию, которая ссылается на android.support.design.widget.Snackbar, заставляет Android Studio отображать ошибку компилятора, но на самом деле компиляция и запуск приложения работают.Я предполагаю, что AS пока не может справиться с этими изменениями.

Кажется, есть некоторые проблемы с кэшированием, удаление .idea/libraries и выполнение синхронизации Gradle приводят к исчезновению ошибок.

0 голосов
/ 01 ноября 2018

Я решил эту проблему, удалив папку .idea и снова синхронизировав проект.

Кажется, это ошибка IDE, а не Jetifier, она не выполняет повторную синхронизацию зависимостей после миграции.Jetifier делает свою работу хорошо.Он преобразует все библиотеки поддержки зависимостей в androidx во время сборки.См. @ этот пост для хорошего объяснения.

0 голосов
/ 27 сентября 2018

Моим исправлением для этого было преобразование библиотеки с ошибкой времени компиляции в AndroidX и отправка запроса на извлечение в библиотеку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...