As Library中引用aar报错的问题

Posted BandaYung

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了As Library中引用aar报错的问题相关的知识,希望对你有一定的参考价值。

1、场景:最近项目需求,做了一个人脸识别的功能,而人脸识别又是第三方提供的,对方给的是一个demo,而且资源文件很多,布局也有,这些是对方提供给我们进行可修改的。然后觉得这样引入到项目中那必须会很乱,然后这个时候就弄成library然后在项目中引用就会好点,当你弄完全部之后,先编译突然出现了aar文件引用的问题了,这也是本文主要说明的。

2、报错效果图:

这里写定位到的文件都是aar,放置与library中的libs文件中。

3、原因:引用aar的方式出现问题了

4、解决历程:
在网上找到了多种方式,然后试了又试发现还是不行。其中有人说在build.gradle中的android节点下用这种方式:

repositories 
    flatDir 
        dirs 'libs'
    

可我在FacialRecognition2下面的那个build.gradle中试过了还是不行,结果还在app目录下也同样写了这个引用还是不行。
后来通过查阅网上的一些文章,最后看到以下文章给了我灵感。
AndroidStudio 多层级 Module 对 aar 引用问题
其中主要是看到这句

5、最终解决:
在项目中app->build.gradle中的android节点下引用

android 
    ....


repositories 
    flatDir 
        dirs '../libs/FacialRecognition2/libs';dirs 'libs'  // 申明本地库
    

这里要补充下,如果这么写是还是不行的,aar虽然在我们的项目中要引用到,可是也得知道Library中也是有引用的,所以还是需要在FacialRecognition2->build.gradle中引用,引用方式不同上面,这个则是放入android节点中。

android 
	...
    repositories 
        flatDir 
            dirs 'libs'
        
    

当在这两个build.gradle中引用完之后,这种error:Failed to resolve: … 基本算是解决了。

6、如果上面的能解决你的引用aar问题,下面的内容你也可以选择绕过。
当时可能我长得太帅,就弄得有点坎坷,另外出现了如下错误:

Error:Execution failed for task ':app:processDebugManifest'. > Manifest merger failed with multiple errors

更多这种错误请查看:AS开发中出现Error(十)

看到Manifest merger,我很快就定位到了是AndroidMainfest或者build.gradle两个中配置还是有问题,然后根据gradle console中

这里的红框只是举例可能出现错误的地方,因为我都解决了,所以不能更好的展示给大家看,不过也不遗憾,起码能知道这里是可以看到具体的报错信息就够了。

希望本文能帮到大家,同时也感谢您的支持。

以上是关于As Library中引用aar报错的问题的主要内容,如果未能解决你的问题,请参考以下文章

android library打包成aar形式供别的项目引用

Android发布AAR包

Android Studio 生成aar包,并在其他项目中引用

as打包包含so的aar和引入aar

android项目生成aar和引用aar解决方案

Android Studio中打包aar并引用及打jar包