As Library中引用aar报错的问题

xiaoxiao2021-02-28  100

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中

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

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

转载请注明原文地址: https://www.6miu.com/read-21772.html

最新回复(0)