【发布时间】:2015-05-11 13:52:38
【问题描述】:
只是想分享一个经验,我必须看看是否有人遇到过这样的问题,他们是否找到了原因,更重要的是他们是如何解决的。
问题非常简单:在 Nexus 6(作为 Adreno 420 GPU)上调试本机代码时,eglSwapBuffer 在使用 Android 5.1(5.0 运行良好)时在某些情况下可能会崩溃。 由于我无法重现它,因此我无法告诉您出了什么问题。根据文档,elgSwapBuffer 在内部调用 glFlush;因此,如果我在突然调用 eglSwapBuffer 之前调用 glFlush ,它会完美运行。 我的猜测是驱动程序没有正确刷新,因此在交换缓冲区时崩溃。
有这方面的cmet吗?
干杯, D
【问题讨论】:
-
如果你不能重现问题,你怎么能说它工作得很好?
-
在此崩溃发生时检查内存限制,并在此处发布崩溃日志。如果您认为这是一个罕见的问题,请使用 crashlytics、崩溃日志等工具。当应用程序通过电子邮件或工具崩溃时,它们会为您提供日志。
-
@ChrisStratton 对。我可以在应用程序的流程中重现。但正如您所料,交换缓冲区是一个非常常见的命令。您可能会争辩说我遗漏了导致问题的某些东西,如果不止一个设备/gpu 受此影响,这将是一个有效点,但事实并非如此。完美我的意思是停止崩溃,就这么简单。
-
@Iqbal 除了 Android SDK(或 NDK?)附带的 monitor.bat 之外,没有尝试过其他任何东西。遗憾的是,那里没有记录任何非常有用的信息。
-
哦,好的。以后请集成我提到的工具之一,这些工具对跟踪日志非常有帮助。
标签: android c++ opengl-es-2.0