Android X: инструменты: заменить, указанное в строке: для атрибута, но не указано новое значение

Я пробовал много решений на этом сайте, но проблема не решена. Проблема связана с библиотекой Android X. Когда я добавил Android X, эта проблема была решена, но она открыла новую проблему. Как решить эту проблему?

Ранее эта ошибка появлялась:

Manifest merger failed : Attribute [email protected] 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:19:5-142:19 to override.

После того как я добавил tools:replace="android:appComponentFactory", появилась эта ошибка:

 java.lang.RuntimeException: Manifest merger failed with multiple errors, see logs
at com.android.builder.core.AndroidBuilder.mergeManifestsForApplication(AndroidBuilder.java:540)    
at com.android.build.gradle.tasks.MergeManifests.doFullTaskAction(MergeManifests.java:173)

Ошибка слияния (в манифесте Android):

Ошибка: инструменты: заменить указанное в строке: 2 для атрибута android: appComponentFactory, но не указано новое значение манифест (этот файл), строка 1

Manifest:

<?xml version="1.0" encoding="utf-8"?>
<manifest
    package="com.example"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:replace="allowBackup, android:appComponentFactory"
    android:allowBackup="false">

    ...

    <application
        android:name="com.example"
        android:icon="@mipmap/icon"
        android:debuggable="true"
        android:hardwareAccelerated="false"
        android:largeHeap="true"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        android:allowBackup="false"
        tools:ignore="GoogleAppIndexingWarning,HardcodedDebugMode">
       ...

Ответы

Ответ 1

Я думаю, что вы переходите на AndroidX libs.

Добавьте следующие строки в файл gradle.properties

android.useAndroidX=true
android.enableJetifier=true

Удалите tools:replace="android:appComponentFactory" из манифеста.

Замените android.support.v7.app.AppCompatActivity на androidx.appcompat.app.AppCompatActivity

Миграция на AndroidX

Ответ 2

Вы можете попробовать добавить:

android:appComponentFactory="android.support.v4.app.CoreComponentFactory"

К тегу <application > в вашем манифесте.

Ответ 3

Я получил ту же ошибку в моем проекте, я решил ее. Вы можете попробовать

Android Studio> Рефакторинг> Миграция на AndroidX

enter image description here

Ответ 4

В моем случае я обновил зависимость от Firebase и сервисов play, что привело к этой проблеме.

Вернул обратно обновления зависимостей и ошибка исчезла

Похоже, что последние зависимости Firebase и Play Service совместимы с androidx.

Ответ 5

Это часто происходило потому, что вы использовали библиотеки Androidx и поддерживающие библиотеки одновременно. Некоторые сторонние библиотеки могут содержать библиотеки поддержки, а другие сторонние библиотеки могут содержать библиотеки Androidx, это также может привести к этой проблеме. Если на вашем ПК есть среда gradle, попробуйте команду "gradlew: app: dependencies" в терминале Android Studio, эта команда выведет список всех библиотек, включая сторонние библиотеки вашего проекта, и выяснит, какая библиотека или инфраструктура использовали библиотеки Androidx и что нет. Затем попробуйте обновить старые библиотеки, используя поддерживаемые библиотеки, и эта проблема должна исчезнуть.

Ответ 6

В моем случае я столкнулся с проблемой из-за версии Firebase, которую я использовал. Понижение версии Firebase помогло мне.

реализация 'com.crashlytics.sdk.android:crashlytics:2.10.1' реализация 'com.google.firebase: firebase-core: 16.0.6'

Ответ 7

У меня похожая проблема. Мой manifest.xml выглядит ниже.

    ?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"


    xmlns:tools="http://schemas.android.com/tools"
    package="android.oskar.kufel.com.rezerwacjapomieszczenstudenckich"
    >

    <application
        android:allowBackup="true"
        android:icon="@drawable/baseline_perm_identity_black_24dp"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"

        tools:replace="android:appComponentFactory">
        <activity
            android:name=".AccountActivity"
            android:label="@string/title_activity_account"

            android:theme="@style/AppTheme.NoActionBar"></activity>
        <activity android:name=".MainActivity"
            android:label="MainActivity"
            android:screenOrientation="portrait">

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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


        </activity>
    </application>


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

</manifest>

и у меня есть эта ошибка:

Слияние ошибок:

Ошибка: инструменты: заменить указанное в строке: 9 для атрибута android: appComponentFactory, но не указано новое значение главного манифеста приложения (этот файл), строка 8

Ошибка: проверка не удалась, выход из основного манифеста приложения (этот файл)

введите описание изображения здесь

Ответ 8

Я попробовал все верхние предложения теперь я получаю эту ошибку

Задача: Reaction-native-admob: compileDebugJavaWithJavac FAILED/Пользователи /balwindersingh/Рабочий стол /WEBSITETOON/adstest/node_modules/реагировать-native-admob/android/src/main/java/com/sbugert/rnadmob/RNAd MobInterstitialAd5odule: ошибка: пакет android.support.annotation не существует import android.support.annotation.Nullable;

Ответ 9

Вам просто нужно добавить этот код в файл gradle.properties file

android.useAndroidX=true
android.enableJetifier=true