代码之家  ›  专栏  ›  技术社区  ›  xlog

安卓工作室垃圾邮件“I/SurfaceView:…”通过USB手机运行应用程序时发送至控制台的消息

  •  1
  • xlog  · 技术社区  · 7 年前

    很抱歉标题含糊不清。当我在模拟器设备上运行应用程序时,在本例中是Nexus 5x(Android 8.1,API 27),一切正常。但是,当通过USB在真实设备上运行应用程序时,该设备是Xperia XA1 Ultra(Android 7.0,API 24),控制台输出窗口会收到以下垃圾邮件:

    I/SurfaceView: Punch a hole(dispatchDraw), this = com.example.xlog.fighter.GamePanel{d2bce30 VFE...... ......I. 0,0-1776,1080}
    I/SurfaceView: 155302755 Locking canvas... stopped=false, win=android.view.SurfaceView$MyWindow@9a72360
    I/SurfaceView: 155302755 Returned canvas: android.view.Surface$CompatibleCanvas@5318019
    

    我不知道这三行的输出顺序。

    我的应用程序正在使用SurfaceView进行绘制。该应用程序运行良好,在模拟器和物理设备上的行为相同。在物理设备上运行时,为什么这些消息会像这样被垃圾邮件发送?在这期间,我甚至不能用指纹进行调试。

    垃圾邮件行在运行窗口中输出。我可以把它们折叠起来,这样就不会那么烦人了,但关键是为什么会发生这种情况?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Sinan Ceylan    6 年前

    我知道这是一篇老帖子,但我在同一部手机上遇到了同样的问题,我找到了解决办法。希望这对别人有帮助。

    无论如何,根据 SurfaceView documentation :

    曲面按Z顺序排列,使其位于保持 SurfaceView;SurfaceView在其窗口上打了一个孔,以允许其 要显示的曲面。

    所以,如果你 setZOrderOnTop(true); 在自定义曲面视图init中,恼人的消息泛滥消失。