当前位置: 首页 > 知识库问答 >
问题:

调试kotlin源

唐俊楚
2023-03-14

我已经在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 */ }

我尝试了很多方法,比如在gradle文件中添加源集,在gradle中创建任务来查找源并将它们附加到JAR/AAR以及其他一些我不记得的事情,但绝对没有效果。

我的问题是:编译kotlin代码(aar和jar)以使其可调试的正确方法是什么

提前致谢:)

为了从java库中创建jar,我经常执行以下两级任务:

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 dependencies中的这一行一起包括在内:

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”,它也会随机跳转。我不明白为什么?

共有1个答案

秦永望
2023-03-14

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

下面是如何使用Gradle实现的:如何使用Gradle构建源代码jar?

 类似资料:
  • 如何使用Idea和Gradle调试KSP? 在调试模式下从IDE运行任务不会将IDE附加到进程。 有没有任何命令行方法让处理器等待IDE附加到进程? (我使用的是KSP)

  • WorkerMan3.0有两种运行模式,调试模式以及daemon运行模式 运行 php start.php start 进入调试模式,这时代码中的echo、var_dump、var_export等函数打印会在终端显示。注意以php start.php start运行的WorkerMan在终端关闭时所有进程会退出。 而运行 php start.php start -d则是进入daemon模式,也就是

  • 增加对SharedReferences调用的可读性。编辑器我想使用一个Kotlin变量来执行“getSharedReferences”。每次我需要一个新的SharedReferences时,编辑()。编辑起初,我打算用这样的东西: 但后来我被告知,“editPreferences”将保留对同一个编辑器的引用,而我真正想要的是在每次调用“editPreferences”时创建一个新的编辑器。 如果使

  • 我已经看了所有其他对此的反应,但它们似乎不适用于我。 https://kotlinlang.org/api/latest/kotlin.test/kotlin.test/ 我正在尝试从暂存文件或.kt文件访问它,并且它不在下拉列表中以选择它。 项目正在使用JDK 15。

  • 调试是一个程序猿非常重要的能力,人写的程序总会有 bug,所以需要 debug。如何方便和快速的定位 bug,是我们讨论的重点,只要 bug 能定位,解决就不是问题。 对于熟悉用 Visual Studio 和 Eclipse 这些强大的集成开发环境的来做 C++ 和 Java 的同学来说,OpenResty 的 debug 要原始很多,但是对于习惯 Python 开发的同学来说,又是那么的熟悉。