“this@ActivityName”未捕获错误Android/Kotlin

1l5u6lss  于 2022-12-02  发布在  Android
关注(0)|答案(3)|浏览(323)

我在修复我朋友的代码,结果弄糊涂了。
我的朋友想获取输入的文本(在EditText中)。看起来很简单,对吧?嗯,是的,但是他得到的不是用户输入,而是这个警告/错误:

老实说,我不知道如何修复它。他是在Kotlin(Android 10)编码。
包含EditText的活动:

和XML:

以下是调试时的外观:

运行“File -〉invalidate Cashes/Restart”选项后,应用程序开始正常工作,我只是不明白这个警告从何而来,以及如何修复它,因为错误保持不变(即使应用程序工作)。你有办法解决它吗?

祝你一切顺利!

vddsk6oq

vddsk6oq1#

fyi lambda表达式(如Kotlin中setOnClickListener)不可调试,请参见here
如果要调试setOnClickListener内部的变量,则应使用普通变量,例如setOnClickListener(object:视图.OnClickListener {..})

ckocjqey

ckocjqey2#

有时会有问题,在自动生成的绑定文件,如果是这样,它将解决后,无效缓存和重新启动ide。有时警告/错误显示,但项目和编译没有错误。所以不需要担心这一点。为下一次后的代码作为代码,而不是屏幕截图。

nhn9ugyo

nhn9ugyo3#

我知道这个问题是关于表达式求值的,但是有一种方法可以从调试器控制台读取变量,即使你在匿名回调中。我发现它有时很有用。下面是步骤:

  • 首先在匿名回调中进入调试器模式,

  • 在调试器控制台中,查看右侧的**“Frames”**

  • 在x1c 0d1x下的Frames内,您将看到函数执行的堆栈,列表中第一个顶部的是最新的:

  • 单击最新函数下面的行,直到找到活动的示例AddInformationActivity。您将在右侧窗口的Variables下看到该活动示例。不要选择变暗的函数,因为这些函数来自内部库。

  • 当您看到AddInformationActivity示例时,可以展开它并查看其变量。

希望这对你有帮助!

相关问题