代码之家  ›  专栏  ›  技术社区  ›  Malwinder Singh

安卓X:工具:替换指定的第行:为属性,但未指定新值

  •  11
  • Malwinder Singh  · 技术社区  · 7 年前

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

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

    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清单中):

    错误:工具:替换指定的在行:2代表属性 安卓:appComponentFactory,但没有为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">
           ...
    
    2 回复  |  直到 6 年前
        1
  •  87
  •   Akshay    7 年前

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

    将下面的行添加到 gradle.properties公司 文件

    android.useAndroidX=true
    android.enableJetifier=true
    

    删除 tools:replace="android:appComponentFactory"

    android.support.v7.app.AppCompatActivity androidx.appcompat.app.AppCompatActivity

    Migrating to AndroidX

        2
  •  39
  •   Gabriel Aguirre    7 年前

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

    到标签 <application >

        3
  •  13
  •   shailesh    6 年前

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

    Android Studio>重构>迁移到AndroidX

    enter image description here

        4
  •  6
  •   codepeaker    6 年前

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

    还原回依赖项更新,错误消失

    似乎最新的Firebase和Play服务依赖项与

        5
  •  5
  •   komaki    6 年前

    这经常发生是因为你 Androidx库 同时。一些第三方库可能包含支持库,而其他第三方库可能包含Androidx库,这也可能导致此问题。如果您的电脑中有gradle环境,请尝试“gradlew:应用程序:依赖项在androidstudio的终端中,这个命令将列出所有的库,包括你的项目的第三方库,并查看哪个库或框架使用了Androidx库,哪个没有。然后尝试升级旧库使用的支持库,这个问题应该消失。

        6
  •  4
  •   Nikhil Lotke    6 年前

    我在里面加了几行 <application>

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

    行内下方gradle.properties公司文件

    android.useAndroidX=true android.enableJetifier=true

    重建项目。

        7
  •  3
  •   Nomuoja Oghenemaro    5 年前

    在标记内添加以下行

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

      android.useAndroidX=true
      android.enableJetifier=true
    

        8
  •  2
  •   rishabh gupta    6 年前

    在我的例子中,我面临的问题是因为我使用的firebase版本。

    “实施”com.crashlytics.sdk软件包.安卓:crashlytics:2.10.1'

        9
  •  1
  •   Rasoul Miri    6 年前

    你只需要添加这个代码 gradle.properties公司

    android.useAndroidX=true
    android.enableJetifier=true
    
    推荐文章