我正在使用谷歌针对Android TV的Leanback库,我正在努力弄清楚如何最好地监听遥控器上的按钮(特别是那些MediaSession
未捕获的按钮)。
出于这个原因,我在BaseGridView.dispatchTouchEvent()
中有一个断点,当我按下其中一个远程按钮时,调试器确实跳到了那一点并向我显示了通常的调试信息。
然而,在几(2-5)秒后,调试信息消失,并被消息&#34替换;帧不可用"。
在其他地方调试器工作正常,所以我想知道调试器引起的延迟是否算作ANR而应用程序是否强行关闭?
无论如何,有什么方法可以解决这个问题吗?
答案 0 :(得分:3)
出现此消息是因为您设置了太多断点,并且线程正在等待来自其他线程的数据,为了解决此问题,您可以取消一些断点并等待数据准备好......
答案 1 :(得分:2)
消息“帧不可用”表示没有更多帧可用于调试。 android studio帮助清楚地说明框架窗口和框架内的目的:
“框架”窗格使您可以访问应用程序的线程列表,导出到文本文件并自定义线程演示。对于每个线程,您可以查看堆栈帧,检查帧,在帧之间导航,并在编辑器中自动跳转到帧的源代码。您可以通过窗格顶部的线程选择器下拉列表选择一个线程。线程的状态和类型由特殊图标和线程名称旁边的文本注释表示。
现在您没有可用的帧表示所有帧都已关闭以进行调试。可能是由于应用程序以任何方式强行关闭或行为不当。尝试调试语句,然后发生这种情况以消除此行为。 希望它有所帮助
答案 2 :(得分:1)
遇到同样的问题,重启AS对我有用。
答案 3 :(得分:0)
当您收到“帧不可用”消息时,表示没有更多帧可用于调试。这些框架是Android Studio调试的一部分,可让您访问应用程序中运行的线程列表。它是您在调试窗口中看到的一长串进程列表。所以正在发生的事情是Android Studio在您踩出时设置断点之前就失去了对它所拥有的线程的了解。在您的情况下可能会发生这种情况,因为默认情况下,当您设置断点时,它会停止执行所有线程。当你走出去时,跟随的线程在工作之前依赖于线程,这就是关闭app的关键。由于您在getCurrentDetails中设置断点,我最好的假设是它没有及时从OKHttp获得响应,因为它发生在后台线程中。你可以尝试两件事来让它发挥作用。首先,尝试右键单击断点并将断点更改为暂停所有线程到该线程。这应该允许OKHttp在被切断之前及时获得响应。或者,将断点进一步向下移动,看看它是否有效。
答案 4 :(得分:0)
File --> Invalidate Caches/Restart 解决了我遇到的问题。