Сбой манифеста для 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.
Даже после добавления этого в манифест, он показывает, что слияние манифеста завершилось неудачей с несколькими ошибками
Ответы
Ответ 1
У меня была похожая проблема. Две строки в файле gradle.properties:
android.useAndroidX=true
android.enableJetifier=true
Ссылка для следования: https://developer.android.com/topic/libraries/support-library/androidx-overview#new-project
Ответ 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'
Ответ 7
У меня также была эта проблема, и я перешел на AndroidX, следуя официальной документации. Только через Refactor → Migrate to AndroidX.
Миграция на AndroidX Официальные документы
Надеюсь это поможет.
Ответ 8
попробуйте: замените rc01 >> alpha1. Это работает для меня!
Ответ 9
Отмена выбора быстрого запуска работала на меня. Не уверен, что это поможет всем.