【问题标题】:OpenGL ES crash on move background, iOS 5.1OpenGL ES 在移动背景上崩溃,iOS 5.1
【发布时间】:2012-05-16 14:06:33
【问题描述】:

我的应用程序 iOS 有一点问题。 当我使用 iOS 模拟器 5.1 ipad/iphone 时,应用程序正在运行,但是当我使用真正的 iOS 设备(iPad 和 iPhone 5.1)时

单击主页按钮后在后台移动时应用程序崩溃... 出现此错误:

libGPUSupportMercury.dylib`gpus_ReturnNotPermittedKillClient:
0x33240094:  trap   
0x33240096:  nop 

我发现是 OpenGL ES 仍在计算并使应用程序崩溃并找到了这个函数:glFinish();

但是我的代码示例在这里仍然不起作用:

- (void)applicationDidBecomeActive:(UIApplication *)application {
    [[CCDirector sharedDirector] resume];
}

- (void)applicationWillResignActive:(UIApplication *)application {
    glFinish();
    [[CCDirector sharedDirector] pause];
}

我认为问题就在这里 有人知道我的问题吗? 谢谢

编辑:

问题解决了:

- (void)applicationDidEnterBackground:(UIApplication *)application
{
[[CCDirector sharedDirector] stopAnimation];
}
- (void)applicationWillEnterForeground:(UIApplication *)application
{
[[CCDirector sharedDirector] startAnimation];
}

也许这可以帮助某人 x)

【问题讨论】:

标签: objective-c ios opengl-es


【解决方案1】:

在 iOS 5.1 中,强制要求您在被要求退出活动状态后无法调用 OpenGL。

- (void)applicationWillResignActive:(UIApplication *)application

是停止一切的地方,无论是 CADisplayLink 还是 [[CCDirector sharedDirector] stopAnimation]

【讨论】:

  • 是的,谢谢,当我发现我忘记停止动画时我编辑了 x)
  • @sup (developer.apple.com/library/ios/#documentation/3DDrawing/…) 引用的文档说 OpenGL 调用可以(并且在某些情况下应该)从 applicationDidEnterBackground 进行 - 它在 applicationWillResignActive 之后执行。请链接到不同意 sup 文档的文档,否则请更新。
  • 请注意,如果您从后台调用 OpenGL ES asyn,它仍然会不时崩溃,因为即使您告诉显示链接或计时器停止,该块仍会继续调用 opengl。 stackoverflow.com/questions/19215554/…
【解决方案2】:

从技术上讲,您可以使用 OpenGL 调用的最后一种方法是:

- (void)applicationDidEnterBackground:(UIApplication *)application

虽然在 applicationWillResignActive 之后暂停绘图通常是个好主意,但这只是一个建议,有些应用程序有超出此范围的要求。真正强制的是,一旦你的应用移到后台,你就不能进行任何 OpenGL 调用。

来自docs:

一旦您的应用程序退出其 applicationDidEnterBackground: 方法, 它不能进行任何新的 OpenGL ES 调用。如果您的应用程序使 OpenGL ES调用,被iOS终止。

另外,请记住将 glFinish() 作为最终的 GL 调用。

【讨论】:

    【解决方案3】:

    检查屏幕上是否有 FPS 节点,它可能正在渲染..

    *编辑 - 并检查音频播放

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多