我在修复我朋友的代码,结果弄糊涂了。
我的朋友想获取输入的文本(在EditText中)。看起来很简单,对吧?嗯,是的,但是他得到的不是用户输入,而是这个警告/错误:
老实说,我不知道如何修复它。他是在Kotlin(Android 10)编码。
包含EditText的活动:
和XML:
以下是调试时的外观:
运行“File -〉invalidate Cashes/Restart”选项后,应用程序开始正常工作,我只是不明白这个警告从何而来,以及如何修复它,因为错误保持不变(即使应用程序工作)。你有办法解决它吗?
祝你一切顺利!
3条答案
按热度按时间vddsk6oq1#
fyi lambda表达式(如Kotlin中setOnClickListener)不可调试,请参见here。
如果要调试setOnClickListener内部的变量,则应使用普通变量,例如setOnClickListener(object:视图.OnClickListener {..})
ckocjqey2#
有时会有问题,在自动生成的绑定文件,如果是这样,它将解决后,无效缓存和重新启动ide。有时警告/错误显示,但项目和编译没有错误。所以不需要担心这一点。为下一次后的代码作为代码,而不是屏幕截图。
nhn9ugyo3#
我知道这个问题是关于表达式求值的,但是有一种方法可以从调试器控制台读取变量,即使你在匿名回调中。我发现它有时很有用。下面是步骤:
首先在匿名回调中进入调试器模式,
在调试器控制台中,查看右侧的**“Frames”**
在x1c 0d1x下的Frames内,您将看到函数执行的堆栈,列表中第一个顶部的是最新的:
单击最新函数下面的行,直到找到活动的示例AddInformationActivity。您将在右侧窗口的Variables下看到该活动示例。不要选择变暗的函数,因为这些函数来自内部库。
当您看到AddInformationActivity示例时,可以展开它并查看其变量。
希望这对你有帮助!