Android Studio 3.1.2引用本地Maven仓库AAR类的问题
我之前也踩过类似的坑,给你梳理几个排查和解决的方向,应该能帮你搞定:
确认本地Maven仓库的AAR元数据完整
先找到本地Maven仓库路径(一般是~/.m2/repository,Windows下是C:\Users\<你的用户名>\.m2\repository),定位到你发布的AAR对应的目录,检查是否存在pom.xml文件,并且文件里的groupId、artifactId、version必须和你在目标项目中引入的依赖坐标完全一致,哪怕大小写、字符差一点都会出问题。另外还要确认pom里正确声明了AAR包含的类和依赖关系。检查目标模块的依赖引入语法
一定要在目标模块的build.gradle(不是顶层项目的)里正确引入依赖,格式应该是:implementation '你的groupId:你的artifactId:你的version'Android Studio 3.1.2还兼容
compile关键字,你也可以试试替换成compile,排除语法适配问题。强制刷新Gradle依赖缓存
Gradle有时候会缓存旧的依赖信息,导致新发布的本地AAR没被识别。你可以:- 点击Android Studio右上角的Sync Project with Gradle Files按钮,或者用快捷键
Ctrl+Shift+O(Windows/Linux)/Cmd+Shift+O(Mac)同步 - 如果同步无效,手动删除项目根目录下的
.gradle文件夹,重启Android Studio后再重新同步
- 点击Android Studio右上角的Sync Project with Gradle Files按钮,或者用快捷键
调整mavenLocal()的仓库顺序
你已经在顶层build.gradle的buildscript和allprojects的repositories中添加了mavenLocal(),可以尝试把它移到仓库列表的最前面,让Gradle优先从本地仓库查找依赖,比如:allprojects { repositories { mavenLocal() google() jcenter() } }验证AAR本身的类完整性
把你发布的AAR文件解压,查看里面的classes.jar是否包含你要引用的类——有时候发布脚本配置错误,会导致部分类没被打包进AAR里。查看Gradle依赖树找线索
点击Android Studio底部的Gradle面板,展开你的项目,找到Tasks > help > dependencies并运行,查看生成的依赖树,确认本地AAR是否被正确拉取。如果有依赖查找失败、版本不匹配的日志,就能直接定位问题根源。
内容的提问来源于stack exchange,提问作者jmc42

