安卓游戏崩溃 GLES3

  • Creator 版本: 3.1

  • 目标平台: android 5.1.1

  • 重现方式:有概率加载一定程度崩溃,有概率运行一段时间崩溃

  • 首个报错: I/Adreno-EGL: <qeglDrvAPI_eglInitialize:379>: EGL 1.4 QUALCOMM build: (I9d3821c5ab)
    OpenGL ES Shader Compiler Version: E031.25.03.04
    Build Date: 11/20/15 Fri
    Local Branch:
    Remote Branch:
    Local Patches:
    Reconstruct Branch:
    I/OpenGLRenderer: Initialized EGL, version 1.4
    D/OpenGLRenderer: Enabling debug mode 0
    I/CocosActivity JNI: APP_CMD_INIT_WINDOW
    D/jswrapper: Initializing V8, version: 8.0.426.16
    D/jswrapper: libuv version: 1.13.1
    D/jswrapper: Debugger listening…, visit [
    D/jswrapper: devtools://devtools/bundled/js_app.html?v8only=true&ws=192.168.201.34:6086/00010002-0003-4004-8005-000600070008
    D/jswrapper: devtools://devtools/bundled/js_app.html?v8only=true&ws=127.0.0.1:6086/00010002-0003-4004-8005-000600070008
    D/jswrapper: ] in chrome browser to debug!
    D/jswrapper: For help see https://nodejs.org/en/docs/inspector
    W/Adreno-EGL: <qeglDrvAPI_eglGetConfigAttrib:607>: EGL_BAD_ATTRIBUTE
    W/Adreno-EGL: <qeglDrvAPI_eglGetConfigAttrib:607>: EGL_BAD_ATTRIBUTE
    W/Adreno-EGL: <qeglDrvAPI_eglGetConfigAttrib:607>: EGL_BAD_ATTRIBUTE
    I/Cocos: 11:36:51 [INFO]: Setup EGLConfig: depth [24] stencil [8] sampleBuffer [0] sampleCount [0]
    I/Cocos: 11:36:51 [INFO]: Chosen EGLConfig: color [RGBA8], depth stencil [D24S8].
    W/Adreno-EGL: <qeglDrvAPI_eglCreateContext:2406>: EGL_BAD_MATCH
    E/Cocos: 11:36:51 [ERROR]: [ERROR] file C:/CocosDashboard_1.0.12/resources/.editors/Creator/3.1.0/resources/resources/3d/engine-native/cocos/renderer/gfx-gles3/GLES3Context.cpp: line 315
    E/Cocos: 11:36:51 [ERROR]: _eglContext = eglCreateContext(_eglDisplay, _eglConfig, nullptr, ctxAttribs) returned EGL error: 0x3009
    E/assert: C:/CocosDashboard_1.0.12/resources/.editors/Creator/3.1.0/resources/resources/3d/engine-native/cocos/renderer/gfx-gles3/GLES3Context.cpp function:doInit line:315

大佬们帮看看怎么回事,OpenGL不懂啊

这个是报错信息,还没有出现崩溃,给下完整的崩溃日志。

V/AudioDecoder: ~AudioDecoder() 0x81ed7fb0
V/AudioPlayerProvider: (@assets/assets/resources/native/da/da8eba43-983c-4547-aaf1-e5c12c108e3c.mp3) file size: 541301
V/AudioPlayerProvider: File (@assets/assets/resources/native/da/da8eba43-983c-4547-aaf1-e5c12c108e3c.mp3) is too large, ignore preload!
V/AssetFd: ~AssetFd: 62
D/Cocos: 12:37:54 [DEBUG]: find in flash memory dirPath()
A/libc: invalid address or address of corrupt block 0xab99f270 passed to dlfree
A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0xdeadbaad in tid 17161 (包)
A/libc: Unable to open connection to debuggerd: Connection refused

中间都是一段加载没有报错。 用了音频和热更

还有,很小概率有图像显示不出来,一直刷
W/Adreno-EGL: <qeglDrvAPI_eglCreateContext:2406>: EGL_BAD_MATCH
E/Cocos: 11:36:51 [ERROR]: [ERROR] file C:/CocosDashboard_1.0.12/resources/.editors/Creator/3.1.0/resources/resources/3d/engine-native/cocos/renderer/gfx-gles3/GLES3Context.cpp: line 315
E/Cocos: 11:36:51 [ERROR]: _eglContext = eglCreateContext(_eglDisplay, _eglConfig, nullptr, ctxAttribs) returned EGL error: 0x3009
E/assert: C:/CocosDashboard_1.0.12/resources/.editors/Creator/3.1.0/resources/resources/3d/engine-native/cocos/renderer/gfx-gles3/GLES3Context.cpp function:doInit line:315
这个报错。
然后继续创建就会崩溃

你使用3.1.1版本测试下,看看问题还复现不。

还是有,我返回桌面再点进来,界面恢复不了,分成了两部分,一部分是正常的画面,被压了,一部分好像是残留画面,一直在闪。但是点击事件位置又是正常的。 这些是在一些低端机上才出现的。 Android 5.1
,是什么引起的呢,我看看能不能换种方式实现

那麻烦做个demo给我们,我们在验证下~ 顺便给个画面问题的录屏。 :3:

mydemo.zip (205.2 KB)
用的魅蓝 m2

搞几天了,实在搞不定。帮看看吧 :rofl:

没有人遇到这类问题吗

啊还有录屏,忘了。现在因为不在公司录不了。但是真的有这个问题,上传的demo就很容易重现,回桌面再回应用,画面一分为二一半一直在闪。

1623122593246 画面录屏

你可以先合并这个PR看下是否有优化。
https://github.com/cocos-creator/engine-native/pull/3552

画面恢复。牛牛牛

GLES 那个报错可以不用理是吧。。。

那个画面的还是有几率出现。。。。。 :rofl:

这个BUG能修复吗大佬。3.0是没问题的