gradle 如何在Android库的内部类中设置断点?

pgky5nke  于 2022-11-24  发布在  Android
关注(0)|答案(1)|浏览(171)

我试图帮助调试Wallet Connect (v2)集成到一个用Kotlin编写的Android应用程序中(我知道Java,但我自己不是Android/Kotlin开发人员)。
我从com.walletconnect:android-core库中得到一个异常,我想设置一个断点(或插入一些调试打印)以进行检查。
尽管我非常感谢任何直接使用WalletConnect的帮助,但这个问题的主要目的是弄清楚我如何自己进行调试。
该库通过以下方式包含在Gradle中

implementation("com.walletconnect:android-core:1.3.0")
implementation("com.walletconnect:sign:2.1.0")

该错误来自JsonRpcInteractor(类似于方法manageSubscriptions)(不知道为什么他们将其 Package 在java.lang.InternalError中,因为这不是JVM错误):

java.lang.InternalError: JsonRpcInteractor: Received unknown object type
    at com.walletconnect.android.impl.json_rpc.domain.JsonRpcInteractor$handleError$1.invokeSuspend(JsonRpcInteractor.kt:271)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
    at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:42)
    at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95)
    at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

在Android Studio的External Libraries下,我只能找到JsonRpcInteractor实现的接口JsonRpcInteractorInterface,而不能找到类本身。类被声明为internal class,我想这可能是原因吧?
因为我找不到这个类,所以我也不能在它里面设置断点。有没有什么技巧可以让我在这个类里面设置断点呢?
this之后,我还尝试用本地副本替换依赖项,并在本地副本中添加了一些print语句,但在我尝试的所有变体中,Gradle都无法找到库项目。
我可以使用repo根目录中的./gradlew installDebug构建完整的WalletConnectKotlinV2项目(除了android-core之外,它还包含其他组件)。但是还不能准确地弄清楚它安装了什么。如果我能将库构建到jar中,我可能就能更容易地将它链接到项目中。

klsxnrf1

klsxnrf11#

我们已经注意到这个问题,并且已经有了PR和一个可能的修复。它应该包含在下一个版本中。

相关问题