Android studio Android Studio在发布给本地maven repo的AAR中引用类

Android studio Android Studio在发布给本地maven repo的AAR中引用类,android-studio,android-gradle-plugin,Android Studio,Android Gradle Plugin,我在Android Studio(3.1.2)引用发布到本地maven repo的AAR中的类时遇到问题 我已成功地将AAR文件发布到我的本地maven repo,并将其包含在需要使用AAR的项目中,本文如下所示: 基本上,我在buildscript和所有项目的存储库部分的顶层项目中添加了对mavenLocal()的引用。我还在appgradle构建中添加了对AAR的引用(即实现groupid:artifactid:version)。我没有做过比这更多的事 如果我在androidstudio中

我在Android Studio(3.1.2)引用发布到本地maven repo的AAR中的类时遇到问题

我已成功地将AAR文件发布到我的本地maven repo,并将其包含在需要使用AAR的项目中,本文如下所示:

基本上,我在buildscript和所有项目的存储库部分的顶层项目中添加了对mavenLocal()的引用。我还在appgradle构建中添加了对AAR的引用(即实现groupid:artifactid:version)。我没有做过比这更多的事

如果我在androidstudio中进行gradle重建,一切都会很好地编译,但是如果我编辑一个引用AAR中类的文件,IDE就无法解析引用

当我找到类(即cmdo)时,IDE会在AAR的classes.jar中正确地找到该类并对其进行反编译

我猜这部分是因为它无法获取我与aar文件一起发布到本地maven repo的源jar

如何让IDE获取源文件并正确引用AAR中的类?如果可能的话,我更愿意通过更改gradle脚本而不是通过IDE向导来实现这一点

经过进一步挖掘,我发现maven repo的使用与此无关,因为它是从~/.gradle/caches/transforms-1/files-1.1中的gradle缓存中提取AAR文件,而不是从maven本地repo。我还可以使用“implementation com.company:artifact name:0.8:sources”包含源文件。这里有一个很好的信息:


然而,Android Studio仍然无法识别导入,尽管编译工作正常,但导入在编辑器中被标记为红色。我想gradle一定有我所缺少的魔力。

我在github上放了一个简单的例子:

在multiproject文件夹中有两个独立的项目,一个称为“嵌套”的项目包含一个名为“multiprojectlibrary”的android库项目,该项目通过一个grade include“嵌套”引用

“multipleprojectlibrary”使用maven publish插件通过命令gradle PublishToAvenLocal将aar发布到mavenLocal

在“独立”项目中,“multipleprojectlibrary”是一个从mavenLocal读取的依赖项

“嵌套”项目工作可靠

在“独立”项目中使用mavenLocal似乎非常不可靠。有时,“独立”项目正确地使用mavenLocal“multipleprojectlibrary”,但当您再次进行更新和发布时,“独立”项目开始使用.gradle/caches/transforms-1/files-1.1中的“multipleprojectlibrary”副本

似乎有两个问题。一是Android Studio的“新项目”菜单选项只允许你制作一个应用程序;您只能通过“新模块”创建Android库,该模块将该库作为应用程序的子项目。创建“新库”的选项可以解决这个问题

另一个问题是不清楚maven本地回购和gradle缓存是如何交互的。它们似乎不同步,sync gradle似乎没有将gradle缓存与mavenLocal repo同步