为什么Android Canvas无法绘制?

时间:2014-02-03 15:56:44

标签: java android canvas paint draw

我被要求在大型Android应用中调试问题。我希望这里的某些人可能比我更了解Android渲染管道。

问题:

Android提供的Canvas实际上可能没有绘制任何内容的可能原因是什么?例如,您是否可以使用任何模式暂时挂起油漆?

症状:

该应用正确响应,但第一个打开的活动显示为空白。整个应用程序区域为白色,应用程序的自定义ActionBar现在显示出来。

  • 视图正确布局(通过使用转储视图层次结构验证UI Automator)
  • 主线程响应(通过记录心跳验证)
  • 正在调用onDraw方法(通过在各种onDraw方法中放置断点来验证)
  • 视图本身似乎正确绘制(通过要求根视图将自身绘制到位图然后将其序列化为磁盘来验证)。这里的不同之处在于,这是我自己实例化的Canvas,而不是Android提供的那个。
  • 没有任何视图位于屏幕边界之外或附加了图层。
  • 其他活动正确绘制。
  • 行为不当的活动使用碎片。
  • 在Android 4.3和4.4以及几个不同的设备上都观察到了这个问题。
  • 所有相关视图都可见(通过遍历View层次结构并检查getVisibility()来验证)。

我对其他要检查的事情感到茫然。它看起来好像一切都正常运行,除了被写入Canvas的任何内容都被丢弃。如果有人能提供任何额外的想法来检查,我会很高兴。

此外,问题在调试器中无法重现 - 我只是从beta bug报告中了解到这一点,其中没有一个报告提供了重现的工作步骤。我需要使用代码检查和偶尔的客户错误报告来解决这个问题。

0 个答案:

没有答案