Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from

 

程序在编译时报错,在执行合并AndroidMainfest时报Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from

因为我将原先的工程删除了。这是引入的新工程,所以报了错,那怎么办,解决办法巴。

按照日志提示
添加tools:replace="android:appComponentFactory"

这个毛用也没有,最终还是这样解决的:

在build.gradle文件中添加

中间subprojects这一段

而至于问题到底是啥。我也不太清楚,看别人的文章都说是:由于AndroidX和Android support 共存导致,而AndroidX又是啥,以后有机会再看。哈哈

buildscript {
    repositories {
        google()
        jcenter()
    }
 
    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
    }
 
    subprojects {
        project.configurations.all {
            resolutionStrategy.eachDependency { details ->
                if (details.requested.group == 'com.android.support'
                        && !details.requested.name.contains('multidex') ) {
                    details.useVersion "27.1.1"
                }
 
                if (details.requested.group == 'androidx.core'
                        && !details.requested.name.contains('androidx') ) {
                    details.useVersion "1.0.1"
                }
            }
        }
    }
}

接着解决。随着这个错误不报错。但是后面还有问题,还是没有解决,看来还得想办法解决AndroidX说Support兼容的问题。

下面这篇文章给解决了,哈哈。我先使用的解决方案二,实验成功。

https://www.jianshu.com/p/f7a7a8765294?tdsourcetag=s_pctim_aiomsg

注意:步骤一中,查看那些库依赖了Androidx,执行gradlew :app:dependencies的具体使用办法如下:

1、点击android studio下的Terminal,输入命令,运行如下:

Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from_第1张图片

终于找到罪魁祸首了。原来是:react-native-device-info工程下的com.goole.android.gms:play-services-gcm:+的问题,因为他的版本过高,而引入了androidx。只要将其版本替换成较低版本:16.1.0即可。至此问题解决。但是我们老大说了这个model每次会别覆盖,所以这样修改不行。所以我将使用方案一来个彻底的。

 

你可能感兴趣的:(android基础)