Реагировать на собственное «Выполнение не выполнено для задачи: ': app: processDebugManifest» после добавления модуля Admob - PullRequest
1 голос
/ 23 июня 2019

Работает с проектом React Native и готов к выпуску, но сталкивается с этой ошибкой:

Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed : 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:7:5-117 to override.

Прекрасно работает перед добавлением модуля «act-native-admob »через npm с помощью« npm i --save Reaction-native-admob @ next »

Для завершения проекта мне нужно запустить admob! помогите пожалуйста!

1 Ответ

1 голос
/ 23 июня 2019

У вас возникла эта проблема, потому что ваши зависимости зависят от библиотек поддержки Android. некоторые имеют более старую версию с именем например. ' com.android.support .. ', в то время как некоторые зависят от более новой библиотеки androidX с именами 'androidx.core ....' . Наличие в одном проекте и библиотек com.android.support и androidx в одном проекте не позволит собрать приложение.

Эта проблема, вероятно, возникла после обновления от 17 июня для сервисов Google Play, которое включало серьезные изменения в библиотеках поддержки Android. https://developers.google.com/android/guides/releases.

Чтобы устранить эту проблему, определите все пакеты года реагирования и проверьте, есть ли у них зависимости (перечисленные в примечаниях к выпуску Play Services), которые были принудительно обновлены до самой последней версии, которая предоставляет androidx. Если у вас в проекте есть папка android, в которой хранятся ваши build.gradles, попробуйте cd android, а затем запустите ./gradlew app: dependencies --scan. Это создает уникальную ссылку на отчет для проверки зависимостей каждого пакета. Разверните ваши зависимости и убедитесь, что в пакетах «native-native», когда они полностью развернуты, нет файлов Android. Проверьте все пути, testCompileClasspath, testRuntimeClassPath ....

Если вы затронули зависимости, вам нужно будет заставить эти пакеты использовать более старую версию с com.android.support. Эта ссылка содержит несколько предложений о том, как ее реализовать. https://github.com/facebook/react-native/issues/25292

Я исправил эту проблему, которая произошла с нашими сборками пару дней назад, выполняя подобные действия в моем app / build.gradle:

implementation(project(':react-native-camera')){
  exclude group: 'com.google.android.gms'
}

Возможно, вам также потребуется объявить некоторую конфигурацию верхнего уровня, чтобы заставить службу Google Play и Firebase использовать определенную версию.

Официальная документация по androidx рекомендует пользователям переключиться на использование более новой библиотеки androidx и попросить включить androidX и Jettifier в true. Это НЕ работает на 100% для реактивных библиотек. Поэтому не обновляйте пакеты до androidx, пока не убедитесь, что все зависимости, имеющиеся в вашем проекте, пригодны для перехода на androidx.

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