Сбой манифеста для appComponentFactory

Использование Google так называемого Material Design 2.0 требует от вас добавления

implementation 'com.google.android.material:material:1.0.0-rc01'

в приложении Gradle, которое также включает

implementation 'com.android.support:appcompat-v7:28.0.0-rc02'    

который показывает конфликты

Вот что говорит журнал

Manifest merger failed : Attribute [email protected] value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0-rc02] AndroidManifest.xml:22:18-91   

is also present at [androidx.core:core:1.0.0-rc01] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory).     Suggestion: add 'tools:replace="android:appComponentFactory"' to <application> element at AndroidManifest.xml:5:5-19:19 to override.

Даже после добавления этого в манифест, он показывает, что слияние манифеста завершилось неудачей с несколькими ошибками

Ответ 2

Эта ошибка распространена в настоящее время:

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

Вы можете выполнить следующие действия, чтобы решить эту проблему:

  • Перенесите свой проект на AndroidX:

В Android Studio 3.2 и более поздних версиях вы можете быстро перенести существующий проект для использования AndroidX, выбрав "Рефакторинг"> "Перенос в AndroidX" в строке меню.

Примечание. Чтобы перенести существующий проект, в котором не используются сторонние библиотеки с зависимостями, требующими преобразования, можно установить для флага android.useAndroidX значение true, а для флага android.enableJetifier значение false.

ЭТОТ ШАГ СДЕЛАЕТ ВСЕ АВТОМАТИЧЕСКИ, ЧТО ВСЕ ОТВЕТЫ СДЕЛАЛИ, ЧТОБЫ ДЕЛАТЬ ВРУЧНУЮ

Даже если вы получите любую другую ошибку, такую как сборка во время выполнения, не удалась, то:

  • Недействительный кеш и перезапуск

ИЛИ ЖЕ

  • Очистите свой проект

Надеюсь, что это поможет всем. Спасибо.

Ответ 3

Замените все зависимости от android с помощью androidx в файле build.gradle.

Например:

implementation 'androidx.appcompat:appcompat:1.0.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha2'
implementation 'androidx.annotation:annotation:1.0.0'
androidTestImplementation 'androidx.test:runner:1.1.0-alpha3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha4'

Ответ 4

Чтобы исправить это, вы должны добавить пространство имен инструментов и применить предлагаемые атрибуты к элементу приложения, рекомендованному средой IDE.

<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
    package="your.package.uri">

 <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        tools:replace="android:appComponentFactory"
        android:appComponentFactory="androidx">

Источник

Ответ 5

Предложение: добавьте tools:replace="android:appComponentFactory" " в элемент AndroidManifest.xml: 5: 5-19: 19 для переопределения.

Если вы добавили tools:replace="android:appComponentFactory" и все еще получили проблемы, исправив его, создав новый проект, скопируйте в него коды и те же зависимости. После этого он должен быть исправлен, я надеюсь.


Если это не решило проблему, попробуйте добавить эти два:

tools:replace="android:appComponentFactory"
android:appComponentFactory="whateverString"

Конечно, в AndroidManifest.xml > <application теге <application.

Ответ 6

Заменить в зависимостях от:

implementation 'com.google.android.material:material:1.0.0-rc01'

чтобы:

implementation 'com.android.support:design:28.0.0'

Ответ 8

попробуйте: замените rc01 >> alpha1. Это работает для меня!

Ответ 9

Отмена выбора быстрого запуска работала на меня. Не уверен, что это поможет всем.