gpus_ReturnNotPermittedKillClient 发生大量崩溃
Lots of crashes at gpus_ReturnNotPermittedKillClient
我在 iOS 8 上收到大量关于此堆栈跟踪的崩溃报告:
Thread : Crashed: com.apple.mapdisplay.dispatch.tiledecodequeue
0 libGPUSupportMercury.dylib 0x2ce478fe gpus_ReturnNotPermittedKillClient + 9
1 libGPUSupportMercury.dylib 0x2ce483cb gpusSubmitDataBuffers + 110
2 libGPUSupportMercury.dylib 0x2ce48249 gldCreateContext + 208
3 GLEngine 0x28a4e93b gliCreateContextWithShared + 602
4 OpenGLES 0x28b2aab3 -[EAGLContext initWithAPI:properties:] + 406
5 OpenGLES 0x28b2a8ff -[EAGLContext initWithAPI:sharegroup:] + 114
6 VectorKit 0x30fb3e65 ggl::OESContext::OESContext(ggl::GLDevice*, std::__1::shared_ptr<ggl::OESSharegroup>) + 492
7 VectorKit 0x30fad45d ggl::GLDevice::vendLoader() + 204
8 VectorKit 0x30f885c5 -[VKRoadTile buildGglMeshesWithDevice:] + 2032
9 VectorKit 0x30f870c9 -[VKRoadTile initWithKey:modelTile:styleManager:sharedResources:contentScale:device:] + 84
10 VectorKit 0x30c3a893 -[VKRoadTileSource tileForData:downloadKey:sourceKey:] + 154
11 VectorKit 0x30c34bc5 __49-[VKTileSource decodeData:downloadKey:sourceKey:]_block_invoke + 84
12 libdispatch.dylib 0x33e917bb _dispatch_call_block_and_release + 10
13 libdispatch.dylib 0x33e98577 _dispatch_async_redirect_invoke + 550
14 libdispatch.dylib 0x33e9adab _dispatch_root_queue_drain + 866
15 libdispatch.dylib 0x33e9a9a9 _dispatch_worker_thread + 72
16 libsystem_pthread.dylib 0x33ff4e93 _pthread_body + 138
17 libsystem_pthread.dylib 0x33ff4e07 _pthread_start + 118
其中大部分发生在 iOS 8.2.0 上,而应用 运行 在后台运行。
除了 setCenterCoordinate
和 setRegion
在后台时,我确定没有对 mapview 执行任何操作。
根据 Apple Q&A 我知道我不应该在后台重绘 MKMapView。但是我尝试以编程方式在后台更改 mapview 的中心坐标和区域,但它没有崩溃。
这是 iOS 8.2.0 的错误吗?有什么办法可以解决或避免这种情况吗?谢谢!
您需要在进入后台后立即停止对任何 OpenGL ES Surface 的渲染。
正如 Apple 在链接文章中所建议的那样,结合使用 AppDelegate 方法和 NSNotificationCenter...
参考this answer...
我在 iOS 8 上收到大量关于此堆栈跟踪的崩溃报告:
Thread : Crashed: com.apple.mapdisplay.dispatch.tiledecodequeue
0 libGPUSupportMercury.dylib 0x2ce478fe gpus_ReturnNotPermittedKillClient + 9
1 libGPUSupportMercury.dylib 0x2ce483cb gpusSubmitDataBuffers + 110
2 libGPUSupportMercury.dylib 0x2ce48249 gldCreateContext + 208
3 GLEngine 0x28a4e93b gliCreateContextWithShared + 602
4 OpenGLES 0x28b2aab3 -[EAGLContext initWithAPI:properties:] + 406
5 OpenGLES 0x28b2a8ff -[EAGLContext initWithAPI:sharegroup:] + 114
6 VectorKit 0x30fb3e65 ggl::OESContext::OESContext(ggl::GLDevice*, std::__1::shared_ptr<ggl::OESSharegroup>) + 492
7 VectorKit 0x30fad45d ggl::GLDevice::vendLoader() + 204
8 VectorKit 0x30f885c5 -[VKRoadTile buildGglMeshesWithDevice:] + 2032
9 VectorKit 0x30f870c9 -[VKRoadTile initWithKey:modelTile:styleManager:sharedResources:contentScale:device:] + 84
10 VectorKit 0x30c3a893 -[VKRoadTileSource tileForData:downloadKey:sourceKey:] + 154
11 VectorKit 0x30c34bc5 __49-[VKTileSource decodeData:downloadKey:sourceKey:]_block_invoke + 84
12 libdispatch.dylib 0x33e917bb _dispatch_call_block_and_release + 10
13 libdispatch.dylib 0x33e98577 _dispatch_async_redirect_invoke + 550
14 libdispatch.dylib 0x33e9adab _dispatch_root_queue_drain + 866
15 libdispatch.dylib 0x33e9a9a9 _dispatch_worker_thread + 72
16 libsystem_pthread.dylib 0x33ff4e93 _pthread_body + 138
17 libsystem_pthread.dylib 0x33ff4e07 _pthread_start + 118
其中大部分发生在 iOS 8.2.0 上,而应用 运行 在后台运行。
除了 setCenterCoordinate
和 setRegion
在后台时,我确定没有对 mapview 执行任何操作。
根据 Apple Q&A 我知道我不应该在后台重绘 MKMapView。但是我尝试以编程方式在后台更改 mapview 的中心坐标和区域,但它没有崩溃。
这是 iOS 8.2.0 的错误吗?有什么办法可以解决或避免这种情况吗?谢谢!
您需要在进入后台后立即停止对任何 OpenGL ES Surface 的渲染。
正如 Apple 在链接文章中所建议的那样,结合使用 AppDelegate 方法和 NSNotificationCenter...
参考this answer...