android老项目运行的辛酸泪:No resource identifier found for attribute 'appComponentFactory' in package 'and...

公司有个好几年的老项目,子模块是一直维护更新的。这个项目我一直没机会碰,昨天开始下载下来弄,发现各种错。现在记录下遇到的几个错:

1、glide库版本冲突,主项目的glide和用到的第三方的glide版本不一致。最重要的是glide库在老版本(我猜测是从4.10.0前)用的是support包,后面都升级用了androidx。刚开始看到项目的库有androidx的jar引用,找了半天没找到那里用了。后面问下大神才知道如何查找各种依赖库关系。有两种方法:

第一种,在项目目录下运行:./gradlew app:dependencies

第二种,如图点击运行:

可以非常方便看到哪个库用到androidx!!

2、当然就是support包版本的冲突

我在主项目app目录的build.gradle文件的android大括号里添加appCompact包强制统一的版本使用,如图:

configurations.all{

    resolutionStrategy.eachDependency{ details->

        def requested = details.requested

// requested.group == 'com.android.support:recyclerview-v7'

        if (requested.group =='com.android.support') {

if (!requested.name.startsWith("multidex")) {

//这里写你想统一的版本是多少,前提是你sdk里有

                details.useVersion'28.0.0'

            }

}

}

}

以为到了这步就可以运行起来,发现一直报这个错:No resource identifier found for attribute 'appComponentFactory' in package 'android',不关androidx问题,还是support冲突问题。

上网查了资料,始终没头绪,后面想起来之前遇到过类似的问题。解决方法就是app项目的build.gradle的compileSdkVersion、targetSdkVersion、buildToolsVersion这些相关的版本号需要和com.android.support:appcompat-v7:28.0.0的一致,也就是需要把他们改成 28 的版本号。

最后完美运行起来了!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容