问题:在Android Studio 中导入aar, import xx.xx.XX 找不到,反编译后发现xx.xx.XX是存在于aar中的。
前提:一个project中有一个Libary的module名字libaryA,一个普通module名字moduleA
在moduleA的build.gradle中配置如下,去引用由libaryA生成的aar
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
implementation (name:'libaryA-release', ext:'aar')
}
奇怪的是,当我按alt+enter提示时,它却让我直接引入Libary的module进行使用。。
问题就出在于这句话:implementation (name:'libaryA-release', ext:'aar'),aar的名字不能与Libary的名字一样,即"libaryA-release.aar",把生成的aar改成"xx-release.aar"就可以成功找到aar里面的类的。
呵呵哒!怎么可能是这个原因,这么无厘头,是因为gradle不会自动刷新新的aar了,以上方法只是改名字让它再刷新一下而已,以下方法正确的操作方法:
执行File->Sync with File System以及File->Sync Project with Gradle Files
如果还不行,先删除project目录下.idea/libaries/Gradle__xx__aar.xml,再执行以上操作!