Проблемы слияния манифеста с Lottie

Я только начинал работать с Лотти, когда наткнулся на эту ошибку. Я добавил зависимость на свой build.gradle

implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'org.jsoup:jsoup:1.11.2'
implementation 'com.airbnb.android:lottie:2.8.0'
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'android.arch.navigation:navigation-fragment:1.0.0-alpha06'
implementation 'android.arch.navigation:navigation-ui:1.0.0-alpha06'
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

Поскольку я добавил implementation 'com.airbnb.android:lottie:2.8.0', сборка прошла успешно, но я не могу запустить приложение, так как при слиянии манифеста возникла ошибка.

Merging Errors: Error: Attribute application@appComponentFactory value=(androidx.core.app.CoreComponentFactory) from AndroidManifest.xml:22:18-86 is also present at AndroidManifest.xml:22:18-91 value=(android.support.v4.app.CoreComponentFactory). Suggestion: add 'tools:replace = "android:appComponentFactory"' to <application> element at AndroidManifest.xml:14:5-35:19 to override. app main manifest (this file), line 21 

Вот мой Manifest.xml:

<?xml version = "1.0" encoding = "utf-8"?>
<manifest xmlns:android = "http://schemas.android.com/apk/res/android"
    xmlns:dist = "http://schemas.android.com/apk/distribution"
    xmlns:tools = "http://schemas.android.com/tools"
    package = "com.rishav.sanfoundryfer">

    <dist:module dist:instant = "true" />

    <uses-permission android:name = "android.permission.INTERNET" />
    <uses-permission android:name = "android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name = "android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name = "android.permission.SYSTEM_ALERT_WINDOW"/>

    <application
        android:allowBackup = "true"
        android:icon = "@mipmap/ic_launcher"
        android:logo = "@mipmap/ic_launcher"
        android:label = "@string/app_name"
        android:supportsRtl = "true"
        android:theme = "@style/AppTheme"
        tools:ignore = "GoogleAppIndexingWarning">
        <activity android:name = ".QuestionActivity"
            android:label = "MCQs"/>
        <activity android:name = ".TopicActivity"
            android:label = "Select Topic"/>
        <activity android:name = ".SubjectActivity"
            android:label = "Select Subject"/>
        <activity android:name = ".MainActivity">
            <intent-filter>
                <action android:name = "android.intent.action.MAIN" />

                <category android:name = "android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
2
0
390
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Тот факт, что ошибка имеет androidx.core.app.CoreComponentFactory, указывает на то, что используются новые пакеты библиотеки поддержки "Jetpack". То, что в вашем манифесте используются «старые» пакеты, указывает на то, что он, вероятно, используется lottie.
Убедиться в этом причина можно, просмотрев библиотеку. Чтобы решить эту проблему, вы можете использовать старую библиотеку lottie, начать использовать пакеты библиотеки поддержки jetpack или разрешить слияние вручную. Вы можете взглянуть на объединенный манифест, если перейдете к AndroidManifest.xml и переключитесь на вкладку Merged Manifest в нижней части окна.

Кстати, для перехода на AndroidX вы можете нажать Refactor, а затем выбрать переход на AndroidX.

hushed_voice 22.03.2019 12:09

Предположение:

добавьте 'tools:replace = "android:appComponentFactory"' в элемент <application> в AndroidManifest.xml:14:5-35:19, чтобы переопределить основной манифест (этот файл), строка 21

Я читал это и, очевидно, пытался это сделать. smh Он хотел, чтобы я предоставил, чем его заменить.

Rishav 22.10.2018 18:38

добавьте 'tools: replace = "android: appComponentFactory" под этой строкой в ​​ur code tools: ignore = "GoogleAppIndexingWarning" ....

poornima 24.10.2018 18:04

Да, я, очевидно, сделал этого приятеля. Вот что я говорю. После добавления этой строки вам необходимо указать то, чем вы хотите ее заменить.

Rishav 25.10.2018 09:50

Другие вопросы по теме