Ошибка AndroidManifest, связанная с AndroidX, при попытке собрать приложение React Native 0.59 - PullRequest
3 голосов
/ 18 июня 2019

Я пытаюсь создать приложение React Native для Android после обновления до 0,59,9 RN, но получаю ошибку, связанную с AndroidX.

Я пробовал много вещей, включая удаление большинства собственных пакетов, изменение AndroidManifest.xml и различные другие решения, упомянутые в Интернете, но, похоже, ничего не работает.

Моя ошибка такова:

> Task :app:processReleaseManifest FAILED
....\android\app\src\main\AndroidManifest.xml:22:18-91 Error:
        Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91
        is also present at [androidx.core:core:1.0.0] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory).
        Suggestion: add 'tools:replace="android:appComponentFactory"' to <application> element at AndroidManifest.xml:35:2-108:16 to override.

See http://g.co/androidstudio/manifest-merger for more information about the manifest merger.


FAILURE: Build failed with an exception.

Насколько я понимаю, это означает, что один из пакетов использует AndroidX, но не основное приложение, однако, насколько я могу судить, в моем приложении используется AndroidX, и я решил обновить его до 0,59 RN, а не 0,60. Я даже пытался выполнить grep "androidx" и удалить все пакеты, которые могут упоминать его.

Я также пытался добавить "android.useAndroidX = true / android.enableJetifier = true" в gradle.properties просто чтобы посмотреть, что происходит, но, как и ожидалось, многие модули не собираются, поскольку они не были обновлены до AndroidX.

Есть идеи, как исправить эту ошибку?

1 Ответ

4 голосов
/ 19 июня 2019

Это, скорее всего, связано с выпуском Android всех библиотек AndroidX и утечкой зависимостей в стиле '+'.

Вы можете либо ./gradlew :app:dependencies|grep androidx найти библиотеки проблем, а затем использовать версию gradle resolutionStrategies или android / build.gradle ext {} для определения зависимости библиотеки Google, либо вы можете преобразовать свой реактивный проект в androidx и использовать утилита jetifier через npm i jetifier && npx jetify, чтобы работали не-androidx реагирующие нативные библиотеки.

Любой из них должен привести к работающей сборке при переходе реагирующей нативной экосистемы на AndroidX

...