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
Ответ 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