调试Kotlin来源

时间:2018-11-22 17:13:56

标签: android debugging kotlin

我在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添加到项目中时,是否可以在顶层项目中调试低代码库?

1 个答案:

答案 0 :(得分:0)

Maven(gradle 构建在 maven repo 上)有一种标准的方式来共享源代码和 javadoc jar。您必须使用分类器 'javadoc' 和 'sources' 创建 jar 文件,并将其与编译的 jar 文件一起部署。

这是你如何用 gradle 做到这一点: How to build sources jar with gradle?