Unable to create layer for FrameLayout, size 192x0 max size 16384 color type 4 has context 1

java_vm_ext.cc:577] JNI DETECTED ERROR IN APPLICATION: JNI CallVoidMethodV called with pending exception 
java.lang.IllegalStateException: Unable to create layer for FrameLayout, size 192x0 max size 16384 color type 4 has context 1
   java_vm_ext.cc:577] (Throwable with empty stack trace)
   java_vm_ext.cc:577] 
   java_vm_ext.cc:577]     in call to CallVoidMethodV
这个报错信息大概是GPU 硬件加速相关的,意思是超出了最大尺寸限制。大概率是跟你使用透明动画相关,所以找找看你的布局文件。

解决方案

可以试着在你添加透明动画的 view上设置forceHasOverlappingRendering为 false,默认的hasOverlappingRendering为 true ,表示有你的 view 有重绘区域,此时绘制使用单通道绘制,效率较低。改为 false 后,系统会使用双通道同时绘制,大大提升效率,基本上都可以解决问题了。如果还是不行,极端点就是直接将该 view 的硬件加速关掉,但请注意如果你的 view 比较复杂,这样会影响效率,大概率会出现卡顿。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 CALayer IOS SDK详解之CALayer(一) http://doc.okbase.net/Hell...
    Kevin_Junbaozi阅读 10,572评论 3 23
  • UI绘制优化好处,不仅可以减少卡顿,也可以加快启动速度,减少不必要的内存和cpu资源消耗。 UI绘制主要工作就是减...
    ArcherZang阅读 3,093评论 0 0
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 14,466评论 2 59
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,794评论 1 32
  • 久违的晴天,家长会。 家长大会开好到教室时,离放学已经没多少时间了。班主任说已经安排了三个家长分享经验。 放学铃声...
    飘雪儿5阅读 12,186评论 16 22