【发布时间】:2019-04-25 09:59:56
【问题描述】:
几个月以来我一直在 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 中附加源代码。现在我可以浏览我制作的旧 kotlin 库的资源。为了实现这一点,我制作了“转到声明”,然后选择右上角的源以在我的计算机上导航并选择库源的顶部文件夹。我不知道 android-studio 或编译器是否发生了变化,但是 jar 创建不再起作用(它失败了这个 :library:createJar NO-SOURCE)。因此,即使我只想制作一个库代码,我现在也必须创建一个 aar。我很高兴看到我可以调试 aar 和 jar 文件,但我只是尝试过,即使使用“F7”它也会随机跳转。我不明白为什么?
另一个问题。我用代码制作了几个库,集成在一个更大的 aar 库中。当这个aar添加到项目中时,是否可以在顶层项目中调试低代码库?
【问题讨论】:
-
如果你展示你尝试过的东西不起作用,可能是你的 Gradle 文件正在生成你的 JAR,然后解释这些 JAR 的保存位置(本地 repo、远程 repo 等),它会有所帮助,并且您如何将它们包含到您的项目中,以及是否将源 JAR 包含到 Intellij(或 Android Studio)项目中。由于所有这些主题都在互联网上得到了很好的介绍,因此很难猜出您在此过程中做错了什么。
-
我刚刚编辑了我的帖子
-
您找到解决方案了吗?我也面临同样的情况。
-
2020 年有人找到解决方案了吗?
-
使用 IntelliJ。您将能够使用适当的 IDE 调试该 Kotlin 代码。