在 line: for 属性中指定了工具: place,但是没有指定新的值

我已经在这个网站上尝试了很多解决方案,但仍然没有解决问题。这个问题是由于 Android X 库造成的。当我添加 Android X 时,这个问题得到了解决,但它也带来了新的问题。如何解决这个问题?

早些时候,这个错误出现了:

Manifest merger failed : Attribute application@appComponentFactory 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 清单中) :

错误: tools: 在第2行替换属性 Android: appComponent entFactory,但没有指定新值的 app main 清单(此文件) ,第1行

舱单:

<?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">
...
98213 次浏览

我认为您正在迁移到 AndroidX libs。

将以下行添加到 Gradle 房地产公司文件

android.useAndroidX=true
android.enableJetifier=true

从清单中删除 tools:replace="android:appComponentFactory"

在活动中替换从 android.support.v7.app.AppCompatActivityandroidx.appcompat.app.AppCompatActivity的导入。在项目中使用替换来加快重构过程。

迁移到 AndroidX

你可以试着加上:

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

到清单中的标记 <application >

我在我的项目中出现了同样的错误,我已经解决了它 你可以试试

Android Studio > 重构 > 迁移到 AndroidX

enter image description here

在我的案例中,我更新了 Firebase 和播放服务的依赖关系,导致了这个问题。

恢复依赖项更新,错误消失

似乎最新的 Firebase 和 Play Service 依赖项与 安卓兼容。

这种情况经常发生,因为您同时使用 Androidx 库支援图书馆。一些第三方库可能包含支持库,其他第三方库可能包含 Android 库,这也可能导致这个问题。如果你的电脑中有分级环境,在 Android Studio 的终端中尝试“ gradlew: app: Dependences”命令,这个命令将列出所有的库,包括你项目的第三方库,并查看哪个库或者框架使用了 Android 库,哪个没有。然后尝试升级使用支持库的旧库,这个问题应该会消失。

在我的情况下,我面临的问题是因为我使用的 Firebase 版本。 降低消防站版本对我有帮助。

实现‘ com.crashlytics.sdk.android: crashlytics: 2.10.1’ 实现‘ com.google.firebase: firebase-core: 16.0.6’

您只需在 Gradle 房地产公司文件中添加此代码

android.useAndroidX=true
android.enableJetifier=true

我在 <application>标签中添加了以下几行

工具: place = “ android: appComponent entFactory” Android: appComponent entFactory = “ android.support. v4.app. CoreComponent entFactory”

在 gradle.properties 文件中的下面几行

UseAndroidX = true = true

重新构建项目。

迁移到 android x

在标签内加上以下几行

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

然后在 gradle.properties 文件中添加以下行

  android.useAndroidX=true
android.enableJetifier=true

重新构建项目。

只需以这种方式配置清单应用程序标记

<application
android:fullBackupContent="true"
android:usesCleartextTraffic="true"
tools:targetApi="m"
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/Theme.Media">

在我的情况下,我有问题

tools:replace="android:usesCleartextTraffic"

我已经使用了 AndroidX,在 gradle.properties 中已经有了这些属性

android.useAndroidX=true
android.enableJetifier=true

问题是我忘记将值设置为 true(或者可以是 false,取决于您的情况)

<application
android:label="myApp"
tools:replace="android:usesCleartextTraffic"
android:usesCleartextTraffic="true"> // I forget this line

建筑,梯度

//noinspection GradleCompatible
implementation 'com.android.support:design:28.0.0'

在 gridle.properties 加上下一行

android.enableJetifier=true

在 AndroidMenifest.xml 中 在 < menifest..。

xmlns:tools="http://schemas.android.com/tools"

在应用中..。 添加以下属性

tools:replace="android:appComponentFactory"
android:appComponentFactory="android.support.v4.app.CoreComponentFactory"
tools:targetApi="p"

对我来说,这些错误的根源是为 TabLayout 添加了 v4设计支持库。

线程 AppComponent entFactory 的清单合并失败帮助,

定型后:

android.useAndroidX=true
android.enableJetifier=false

我遇到了工具名称空间的问题。 问题是,在清单我有 tools:replace="android:appComponentFactory",但添加 android:appComponentFactory="androidx"解决至少-清单合并错误。

然而,当尝试链接安装 TabLayout 与 ViewPager 使用,似乎寻呼机需要 android.support.v4.view.ViewPager但我得到了 androidx.viewpager.widget.ViewPager

        //attach pager adapter
SectionPagerAdapter pagerAdapter = new SectionPagerAdapter(getSupportFragmentManager());
ViewPager pager = (ViewPager)findViewById(R.id.pager);
pager.setAdapter(pagerAdapter);


//attach viewpager with tablayout
TabLayout tabs = (TabLayout) findViewById(R.id.tabs);
tabs.setupWithViewPager(pager);