【发布时间】:2020-03-19 20:35:52
【问题描述】:
我创建了一个最初用 Java 编码的 Android 库,它输出了一个 .aar 文件,我在我的一些项目中使用了该文件。
当我将这个库包含在一个项目(一个使用 Kotlin 创建的 Android 项目)中并且我决定调试这个项目中的代码时,当调试器到达包含库类的行时,它会成功进入该类并且我可以在我调试时查看该类的源代码。我可以在 lib 的类中逐行继续调试,一切都按预期工作。
但是,我最近决定将此库转换为 Kotlin,但现在,当调试器到达该库的一个类并且我进入该类继续在那里调试时,我再也看不到整个源代码。我只能看到方法签名,但没有方法定义。我只看到以下内容:
public class ClassA {
public fun function1(): kotlin.Unit
public fun function2(): kotlin.Unit
public fun function3(): kotlin.Unit
}
我没有在图书馆的项目设置中做任何其他事情。我只是将文件从.java 转换为.kt。
到目前为止,我尝试了以下一些方法来解决此问题:
- 我确认我将 Kotlin 的标准库包含在库中
build.gradle文件的依赖项列表中。 - 我禁用了 ProGuard(它从来都不是问题,但我删除了它以防万一)。
- 我禁用了代码缩小(这也从来不是问题,但此时我愿意尝试任何事情)。
有人知道为什么会这样吗?
【问题讨论】:
-
使用库的项目是否配置为使用 Kotlin?
-
是的,如第二段所述,使用lib的项目是Kotlin的。
-
我也有同样的问题。你找到解决办法了吗?
-
@hmartinezd 不幸的是没有。但我在 Jetbrains 错误报告网站上发现了一些关于同一问题的线程。多年来,这似乎是一个众所周知的问题:(
-
遇到了同样的问题。在找到解决方案之前,我们更喜欢用 JAVA 编写所有库。