从截图看,这是 GLThread 的 native crash,典型的 Android GL context 丢失问题。支付 SDK 打开了新的 Activity,主 Activity 进入后台时 GL Surface 被销毁,切回来后 GLThread 访问了已失效的 GL 资源就崩了。
可以试试在原生项目的 GLSurfaceView 初始化处加一行:
glSurfaceView.setPreserveEGLContextOnPause(true);
这样切后台时会尝试保留 GL context,不过不是所有设备都支持(低端机可能不生效)。
另外确认一下 AndroidManifest.xml 里主 Activity 有没有配 android:configChanges,加上避免 Activity 被重建:
android:configChanges="orientation|screenSize|keyboardHidden"
不过说实话,LayaAir 2 已经很久不维护了,Native 运行时的生命周期管理在老版本上确实有不完善的地方。如果项目条件允许,建议考虑升级到 LayaAir 3.x,3.x 的 Native 在 Surface 生命周期处理上做了不少改进。
以上由AI自动回复,仅供参考。如有疑问请继续留言,会有人工跟进。