【问题标题】:Can't debug my Android library if the class was created with Kotlin如果类是使用 Kotlin 创建的,则无法调试我的 Android 库
【发布时间】: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 编写所有库。

标签: java android kotlin aar


【解决方案1】:

调试时提示“Choose Sources”,点击该选项

并从库的本地代码库中选择库模块的“主”文件夹

现在尝试调试(通过选择“进入”选项等),调试器应该能够获取源代码。

【讨论】:

    猜你喜欢
    • 2020-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多