核心动画渲染错误 506 是啥意思?

Posted

技术标签:

【中文标题】核心动画渲染错误 506 是啥意思?【英文标题】:What does a Core Animation rendering error 506 mean?核心动画渲染错误 506 是什么意思? 【发布时间】:2010-12-22 11:53:29 【问题描述】:

我的设备控制台日志中出现此错误,但我找不到任何相关信息。我不知道这个错误的原因是什么,在哪里可以找到任何注释或任何东西:

Tue Dec 14 09:46:05 unknown com.apple.SpringBoard[46] <Notice>: CoreAnimation: rendering error 506
Tue Dec 14 09:46:05 unknown com.apple.SpringBoard[46] <Notice>: CoreAnimation: rendering error 506
Tue Dec 14 09:46:05 unknown com.apple.SpringBoard[46] <Notice>: CoreAnimation: rendering error 506

此错误在我的 iPad 应用程序中随机发生(并且非常罕见),基本上它会使整个屏幕变黑(带有图像和一些标签的按钮除外)。当我退出应用程序时,我的虚拟键盘上有一个空白点(被黑色覆盖)(所以它以某种方式从应用程序传递到 ios)。

这是一个实际操作的视频:http://www.youtube.com/watch?v=L2YilAVXqAo

什么会导致这个错误,我怎样才能避免这个错误?

【问题讨论】:

闻起来像内存不足错误 - 在此之前是否调用了任何内存警告回调? 您需要检查您的 iPad 并可能更换。这很可能是导致问题的硬件故障。 我要做的第一件事是验证它的故障硬件是否是在另一台 iPad 上测试它,可能是 iPad 2。渲染错误通常是由 GPU 无法接受和显示 UI 引起的。还有你是什么试图加载到屏幕上。可能是帧缓冲区超载 这里同意上面的cmets;您可以分享您尝试渲染的源代码的通用版本吗? 【参考方案1】:

那不是OpenGL rendering error吗? 如果是这样,那就是 GL_INVALID_FRAMEBUFFER_OPERATION。如果您自己没有进行任何 OpenGL 调用,您应该向 Apple 提交错误。

【讨论】:

【参考方案2】:

正如人们指出的那样,这是一个内存不足的问题。

【讨论】:

【参考方案3】:

同样的问题。 在处理基于 Cordova 的项目时,我在 Xcode 中收到了相同的错误消息。我的项目中没有使用 webGL,多亏了 Cordova,只在 web 视图中嵌入了 JS/html/CSS。

每次返回错误时,我还可以在我的设备屏幕上看到一些元素(HTML div 标签)的快速差异。

对我来说,问题是由于 RequestAnimationFrame 函数中的简单 CSS 变换 scaleX 渲染造成的。我正在计算一个百分比来增加进度条。在 RequestAnimationFrame 函数中,我正在(使用 jQuery)使用 transform 属性在进度条上设置新的 CSS 样式。例如:

function step(timestamp) 
    var percent = getPercentSpent();
    $('#bar').css('transform':'scaleX('+percent+')');// Source of problem in my case
    requestAnimationFrame(step);

requestAnimationFrame(step);

从项目中删除此 CSS 转换也消除了错误。在删除此行之前,我在 iPhone 4S IOS9 和 iPhone5c iOS10 上都收到了错误消息。

希望这会有所帮助。

【讨论】:

以上是关于核心动画渲染错误 506 是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

CoreAnimation编程指南核心动画基础

核心数据:NSFetchedResultsController 错误:尝试创建两个动画

jQuery 的核心功能是啥?

iOS动画1 — UIView动画

如何使用核心动画创建导航控制器推送效果?

ios开发核心动画七:核心动画与UIView动画的区别