Как разрешить конфликт между библиотекой поддержки Android и AndroidX? - PullRequest
0 голосов
/ 11 декабря 2019

Я разработчик единства, который для решения конфликта пытается экспортировать мой проект в Android Studio.

Я использую библиотеку firebase и vungle. firebase зависит от androix-core, а vungle зависит от support-compat. если я компилирую их оба, я получаю ошибку компиляции:

Duplicate class android.support.v4.app.INotificationSideChannel found in modules classes.jar (:androidx.core.core-1.0.0:) and support-compat-27.1.1.jar (support-compat-27.1.1.jar)

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

спасибо

Ответы [ 4 ]

1 голос
/ 12 декабря 2019

Vungle SDK поддерживает androidx начиная с 6.5, и сейчас у него ранний доступ. Если вы хотите использовать 6.4.11, было бы здорово использовать инструменты Android Studio Gradle для выполнения миграции, как упоминалось в других ответах. Затем проблема должна быть исправлена ​​с помощью SDK 6.4.11. Но на тот случай, если кто-то не хочет экспортировать проект Android Studio и все еще хочет использовать SDK 6.4.11. Вы можете следить за документом здесь для самостоятельной миграции Vungle SDK без AndroidСтудия. Что вам нужно сделать, это:

  1. Загрузите jetifier и распакуйте его
  2. Используйте терминал и cd в папку (mac)
  3. Загрузите SDK 6.4.11 и перетащите SDK 6.4.11 jar / aar в папку jetifier-standalone / bin

Последние шаги запускают следующую команду:

./jetifier-standalone -i publisher-sdk-android-6.4.11.aar -o publisher-sdk-android-6.4.11-androidx.aar

ИЛИ

./jetifier-standalone -i vungle-android-sdk-6.4.11.jar -o vungle-android-sdk-6.4.11-androidx.jar
./jetifier-standalone -i vng-moat-mobile-app-kit-2.5.1.jar -o vng-moat-mobile-app-kit-2.5.1-androidx.jar

Пожалуйста, не забудьте конвертировать две библиотеки, если вы используете файл jar для интеграции.

Пожалуйста, используйте JD-GUI , чтобы проверить jar / aar иубедитесь, что миграция завершена. Я встретил сбой миграции без каких-либо ошибок один раз. Так что будет здорово проверить это. Вы можете проверить файл ниже: enter image description here enter image description here

Наконец, если вы НЕ хотите делать это самостоятельно, пожалуйста,бесплатно загрузить перенесенный файл aar из моего Dropbox. Я уверен, что он будет доступен некоторое время. Пожалуйста, дайте мне знать, если кому-то понадобятся банки.

1 голос
/ 11 декабря 2019

Добавьте их к своим свойствам Gradle и после нажатия на файл в Android Studio аннулируйте Cache, перезапустите вашу студию

android.useAndroidX=true
android.enableJetifier=true
1 голос
/ 11 декабря 2019

Ответ, данный здесь указывает, что лучший подход - это придерживаться AndroidX, так как это новая библиотека для замены поддержки Android, однако использование androidx в gradle.properties означает только, что ваш проект собираетсяиспользуйте AndroidX, но если ваши классы по проекту все еще импортируют библиотеки поддержки Android, появится та же ошибка.

Если вы перейдете на сайт поддержки vungle здесь , есть разделв нем говорится о совместимости с AndroidX и говорится:

Совместимость с AndroidX Vungle Android SDK 6.4.11 или более ранние версии официально не поддерживают AndroidX. Издатели должны использовать инструмент миграции, доступный в Android Studio, для преобразования SDK и его зависимостей (сторонних библиотек) для совместимости с AndroidX. Официальная поддержка AndroidX будет доступна с 6.5.0, которая в настоящее время находится на ранней стадии доступа, и эта версия не нуждается в дальнейшем преобразовании для совместимости с AndroidX. Пожалуйста, обратитесь к менеджеру аккаунта, чтобы получить ранний доступ к 6.5.0, если вам нужно.

Итак, вам нужно импортировать библиотеку vungle в Android Studio и следовать инструкциям ( этот ), чтобы перенести весь проект в AndroidX, а затем скомпилировать библиотеку и использовать ее над проектом Unity. Однако я должен предупредить вас, что это сложно, иногда инструмент миграции Android Studio не меняет все варианты использования поддержки Android и даже иногда не обновляет их до текущих классов AndroidX, и вам, возможно, придетсяпросмотрите каждый файл библиотеки, изменив каждую ссылку поддержки Android на AndroidX, и это может занять несколько дней, в зависимости от того, насколько велика библиотека.

ИЛИ, а это большой или, вам придется подождатьVungle Android SDK 6.5.0, который будет совместим с AndroidX.

PD: Как указано на сайте поддержки Vungle, вы также можете получить текущий SDK раннего доступа Vungle 6.5.0, но он может содержать ошибкикак это все еще в разработке.

0 голосов
/ 11 декабря 2019

Вы можете попробовать

Refactor -> Migrate to AndroidX...

и перестроить проект после этого

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