调试 kotlin 源代码

Debug kotlin sources

提问人:thomas_exotic 提问时间:11/23/2018 最后编辑:thomas_exotic 更新时间:3/19/2021 访问量:1747

问:

我从几个月开始在 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 文件中添加 sourceSet,在 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)

在项目中,我需要这个库,我只是在应用程序目录中创建一个“libs”目录,并且我将其包含在 gradle 依赖项中的这一行中:

implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation fileTree(include: ['*.aar'], dir: 'libs') // Or that for aar

我刚刚找到了如何在android-studios中附加源代码。现在,我可以浏览我制作的旧 kotlin 库的投掷源代码。为了实现这一点,我做了“转到声明”,然后选择右上角的源在我的计算机上导航,然后选择库源的顶部文件夹。我不知道android-studio或编译器是否有更改,但是jar创建不再起作用(它失败了:library:createJar NO-SOURCE)。因此,即使我只想制作一个库代码,我现在也必须创建一个 aar。我很高兴看到我可以调试 aar 和 jar 文件,但我只是尝试过,即使使用“F7”它也会随机跳跃。我不明白为什么?

另一个问题。我用代码制作了几个库,集成到一个更大的 aar 库中。当这个 aar 被添加到一个项目中时,是否可以在顶级项目中调试低代码库?

Android 调试 Kotlin

评论

0赞 Jayson Minard 11/23/2018
如果您展示您尝试过的不起作用的内容,可能是生成 JAR 的 Gradle 文件,然后说明这些 JAR 的保存位置(本地存储库、远程存储库等),以及您如何将它们包含在您的项目中,以及您是否将源 JAR 包含在 Intellij(或 Android Studio)项目中,这会有所帮助。由于所有这些主题都在互联网上得到了很好的报道,因此很难猜测您在此过程中做错了哪件事。
0赞 thomas_exotic 11/23/2018
我刚刚编辑了我的帖子
0赞 hmartinezd 11/13/2019
你找到解决方案了吗?我面临同样的情况。
2赞 Nishant Pardamwar 1/16/2020
它的 2020 年有没有人找到解决方案?
0赞 duffymo 3/19/2021
使用 IntelliJ。您将能够使用适当的 IDE 调试该 Kotlin 代码。

答:

0赞 kocka 3/19/2021 #1

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

以下是使用 gradle 的方法: 如何使用 gradle 构建源 jar