我在Kotlin工作了几个月,我开始像制作Java源代码一样制作库,并且运行良好。但是,我对这些库有一个很大的问题,我无法调试它们(尽管我从未遇到过Java库的问题)。当我进入消息源时,我唯一拥有的就是:
public open fun clearDevices(): kotlin.Unit { /* compiled code */ }
public final fun disconnect(): kotlin.Unit { /* compiled code */ }
public final fun initiate(context: android.content.Context): kotlin.Unit { /* compiled code */ }
.jar和.aar文件的行为相同。
我尝试了很多事情,例如在gradle文件中添加sourceSets,在gradle中创建任务以查找源并将它们附加到jar / aar以及其他我不记得的东西,但是绝对没有任何作用。
我的问题是这样的: 编译Kotlin代码(aar和jar)以使其可调试的正确方法是什么
先谢谢您了:)
编辑
为了从Java库创建jar,我曾经执行过这2个gradle任务:
task deleteJar(type: Delete) {
delete '../libs/my_lybrary.jar'
}
task createJar(type: Copy) {
from('build/intermediates/bundles/release')
into('../libs')
include('classes.jar')
rename('classes.jar', 'my_lybrary.jar')
}
createJar.dependsOn(deleteJar, build)
在项目中,我需要这个库,我只是在app目录中创建了一个“ libs”目录,并且在gradle依赖项的这一行中包括了它:
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation fileTree(include: ['*.aar'], dir: 'libs') // Or that for aar
我刚刚找到了如何在android-studios中附加源代码。现在,我可以浏览我制作的旧科特林唱片的来源。为了实现这一点,我选择了“转到声明”,然后选择右上角的源以在计算机上导航并选择库源的顶部文件夹。我不知道android-studio或编译器是否发生了变化,但是jar创建不再起作用(它在此:library:createJar NO-SOURCE中失败了)。因此,即使我只想制作一个库代码,我也必须立即创建一个aar。我很高兴看到我可以调试aar和jar文件,但是我只是尝试过,即使使用“ F7”,它也会随机跳转。我不明白为什么?
另一个问题。我用代码做了几个库,并集成到一个更大的aar库中。当将此aar添加到项目中时,是否可以在顶层项目中调试低代码库?
答案 0 :(得分:0)
Maven(gradle 构建在 maven repo 上)有一种标准的方式来共享源代码和 javadoc jar。您必须使用分类器 'javadoc' 和 'sources' 创建 jar 文件,并将其与编译的 jar 文件一起部署。
这是你如何用 gradle 做到这一点: How to build sources jar with gradle?