Android 15/16 Cocos2d-x V8 Crash 问题分析与 GLThread 复用解决方案
背景
修复v8::HandleScope::Initialize(v8::Isolate*)+144
接上一篇文章。由于平时更新不算频繁,加上个人也有些懒,一直没有深入思考 Cocos2d-x 2.x 在 Android 15/16 上的 V8 Crash 问题如何彻底修复。
最近重新整理这个问题时,想到一个新的思路:
如何可以通过复用同一个 GLThread 来避免问题?
因为之前分析发现,Crash 的核心原因很可能来自 GLSurfaceView 在 View 重建时重新创建 GLThread。如果能够保证整个生命周期中始终使用 同一个 GLThread,也许就可以绕开这个问题。
于是开始重新阅读 GLSurfaceView 的源码,并尝试寻找可行的干预点。