AndroidX переход и Cordova, каковы риски / преимущества? - PullRequest
1 голос
/ 02 апреля 2019

Вот моя история: Я перенес свое приложение на AndroidX, потому что мне нужны были новые функции из библиотеки, которую я нашел в Интернете.

Проблема: I 'Я в настоящее время сталкиваюсь с некоторыми проблемами, потому что теперь мне нужно разработать плагин для Cordova, который реализует часть этого приложения.

Я сгенерировал файл .arr с моей библиотекой и попытался создать плагин Cordova, который действует какинтерфейс для использования библиотеки.Но когда я пытаюсь использовать cordova-plugin-camera с моим плагином, который использует AndroidX, я получаю ошибки: двойной импорт, потому что cordova-plugin-camera использует библиотеку поддержки.

Решение: Я удалилзависимости от AndroidX и заменили их на старую библиотеку поддержки.

Вопрос: Это хорошая идея, чтобы перейти на AndroidX прямо сейчас, или мне лучше оставить библиотеку поддержки?Я реализовал что-то не так?Что вы выбрали для своих проектов?

1 Ответ

2 голосов
/ 23 апреля 2019

Я создал пару служебных плагинов для помощи в миграции AndroidX в проектах Cordova Android:

  • cordova-plugin-androidx будет постоянно настраивать проект платформы Cordova Android для использования AndroidX.
  • cordova-plugin-androidx-adapter переносит любые ссылки на устаревшую библиотеку поддержки в проекте платформы Cordova Android для использования эквивалентных имен AndroidX.

Я создал их как общее решение для поддержки AndroidX в моих существующих плагинах, которые ссылаются на библиотеку поддержки Android, например, cordova-Diagnostic-Plugin , против которого Проблемы с поддержкой AndroidX были подняты .

Это означает, что, установив оба этих плагина в проекте Cordova, который уже содержит плагины, которые ссылаются либо на устаревшие имена библиотеки поддержки и / или имена AndroidX, сборка теперь будет успешной.

Например, попробуйте этот тестовый пример:

cordova create test && cd test
cordova platform add android@8
cordova build android
    => build succeeds
cordova plugin add cordova.plugins.diagnostic
cordova build android
    => build succeeds
cordova plugin add cordova-plugin-androidx
cordova build android
    => build fails
cordova plugin add cordova-plugin-androidx-adapter
cordova build android
    => build succeeds
...