我想知道为什么我的图书馆在按照AAR格式构建后总是丢失文档。此外,Android Studio缩小了代码,即构建之前的代码与内置到AAR格式后的代码总是不同,没有原始代码。我希望我的库有自己的文档,并有原始代码。您可以在下面看到不同的内容:
在构建之前
内置为AAR格式后
文档在哪里?!此外,您会注意到整个代码确实缩小了,并且不同。
那么,如何在不缩小代码的情况下将AAR库与其文档一起导出?
答案 0 :(得分:12)
我同意@MarkusKauppinen。
构建源jar之后的主要问题是你不能使用这个jar作为你的依赖项。这只是一个不能用于编写代码的源代码,即您无法导入任何内容,因为jar包含*.java
个文件而不是*.class
个文件。这样做,请执行以下操作:
第1步为您的库构建AAR格式。通常,它位于[project]/[library-module]/build/outputs/aar/library-release.aar
第2步将AAR文件添加为模块。转到文件>新>新模块...>导入.JAR / .AAR包>下一步。
然后,找到AAR文件并单击Finish。
第3步点击此图标转到项目结构,然后将我们刚刚创建的模块添加到应用的依赖项中。
步骤#4 将@ MarkusKauppinen的gradle任务添加到库模块build.gradle
并使用gradle同步项目。
第5步:转到Android Studio右侧窗格>点击Gradle>点击此图标即可刷新草图任务。
步骤#6 在sourcesJar
>中查找并运行(双击):library-module
Tasks
> other
。
步骤#7 任务完成后,您将在
中找到源jar library-module\build\libs\..-sources.jar
。
步骤#8 将至少一个类导入应用的模块,例如在MainActivity
。然后,按 Ctrl +单击该类。单击Choose sources
并浏览步骤#7中提到的源jar。
最后,您可以查看源代码及其文档。
答案 1 :(得分:8)
代码"收缩"因为一旦您创建了AAR ,原始源代码就不会包含在AAR 中。它只是Java字节码。
然后在应用程序中使用AAR库时。 源代码是从字节代码反向设计的。原始变量名称不可用,并且由于字节码编译器的优化和诸如此类的原因,可能存在一些编码样式差异。当然,这些注释不包含在字节代码中,因为它适用于计算机,而注释适用于人。
因此,在使用AAR库时,如果您在调试等时无法查看原始源代码,则需要将AAR作为单独的源JAR提供,并且可能告诉Android Studio使用源JAR它没有自动完成。
我已经能够自动创建源JAR,作为上传"过程的一部分。生成的AAR / JAR到本地Maven存储库。我不知道你有什么样的构建系统,所以我不会进入这些细节。
无论如何,你可以将它添加到你的模块的build.gradle:
task sourcesJar(type: Jar) {
classifier = 'sources'
from android.sourceSets.main.java.srcDirs
}
当您想要创建/更新源JAR时,您需要单独运行它:
Gradle - >任务 - >其他 - > sourcesJar
可能还有一些方法可以将任务自动化为assembleRelease
任务的一部分,但我对Gradle还不是很熟悉。
源JAR将出现在... \ MyLibrary \ app \ build \ libs \ path中。
答案 2 :(得分:0)
在kotlin中,您可以使用名为Dokka的开源库。它非常容易使用,并且可以html格式生成文档,就像您可以使用javaDoc一样。 基本上,该库会在gradle方法列表中添加一个名为“ dokka ”的方法。通过启动命令,将生成文档:)。
您可以在下面看到一个示例: