cocos / engine-native

Native engine for Cocos Creator v2.x

Home Page:http://www.cocos.com/en/products

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Android 11 API 30 crash

PatriceJiang opened this issue · comments

ref: https://forum.cocos.org/t/topic/120380/11

cocos version android api level crash
3.1.2 21~30 NO
3.3 21~29 NO
3.3 30 YES

ndk-stack
adb logcat

It crashes when invoking initialize of GLES3 context, in libandroid.so.

https://github.com/cocos-creator/engine-native/blob/8ac4d33645a932924fe4db86b7ce69a3dd786263/cocos/renderer/gfx-gles3/GLES3Context.cpp#L282

It works well before API level 30.

********** Crash dump: **********
Build fingerprint: 'Redmi/haydn/haydn:11/RKQ1.201112.002/V12.5.5.0.RKKCNXM:user/release-keys'
#00 0x00000000000bb088 /system/lib64/libgui.so (android::Surface::hook_queueBuffer_DEPRECATED(ANativeWindow*, ANativeWindowBuffer*)+20) (BuildId: 408ea92c36ea935782ece7a6e7f93cd0)
#01 0x000000000001b178 /system/lib64/libandroid.so (ANativeWindow_setBuffersGeometry+40) (BuildId: 2c973ef7470d427d0a85a55a63aba5c4)
#02 0x00000000013e9eec /data/app/~~p9zTo5KitjqyoEx5h7Kypw==/com.cocos.android-DYft-JOsiJtUZnfs76shKw==/base.apk!libcocos.so (offset 0xd49000) (cc::gfx::GLES3Context::doInit(cc::gfx::ContextInfo const&)+4652) (BuildId: 0552e627195b34ecef2efe3967dd89b996572fb6)
                                                                                                                             cc::gfx::GLES3Context::doInit(cc::gfx::ContextInfo const&)
                                                                                                                             /Users/pt/Github/cocos2d-x-lite/cocos/renderer/gfx-gles3/GLES3Context.cpp:282:9
#03 0x000000000116de58 /data/app/~~p9zTo5KitjqyoEx5h7Kypw==/com.cocos.android-DYft-JOsiJtUZnfs76shKw==/base.apk!libcocos.so (offset 0xd49000) (cc::gfx::Context::initialize(cc::gfx::ContextInfo const&)+64) (BuildId: 0552e627195b34ecef2efe3967dd89b996572fb6)
                                                                                                                             cc::gfx::Context::initialize(cc::gfx::ContextInfo const&)
                                                                                                                             /Users/pt/Github/cocos2d-x-lite/cocos/renderer/gfx-base/GFXContext.cpp:41:12
#04 0x00000000011f4a98 /data/app/~~p9zTo5KitjqyoEx5h7Kypw==/com.cocos.android-DYft-JOsiJtUZnfs76shKw==/base.apk!libcocos.so (offset 0xd49000) (cc::gfx::GLES3Device::doInit(cc::gfx::DeviceInfo const&)+164) (BuildId: 0552e627195b34ecef2efe3967dd89b996572fb6)
                                                                                                                             cc::gfx::GLES3Device::doInit(cc::gfx::DeviceInfo const&)
                                                                                                                             /Users/pt/Github/cocos2d-x-lite/cocos/renderer/gfx-gles3/GLES3Device.cpp:79:26
#05 0x0000000000ab4b40 /data/app/~~p9zTo5KitjqyoEx5h7Kypw==/com.cocos.android-DYft-JOsiJtUZnfs76shKw==/base.apk!libcocos.so (offset 0xd49000) (cc::gfx::Device::initialize(cc::gfx::DeviceInfo const&)+236) (BuildId: 0552e627195b34ecef2efe3967dd89b996572fb6)
                                                                                                                             cc::gfx::Device::initialize(cc::gfx::DeviceInfo const&)
                                                                                                                             /Users/pt/Github/cocos2d-x-lite/cocos/renderer/gfx-base/GFXDevice.cpp:72:12
#06 0x0000000001173f0c /data/app/~~p9zTo5KitjqyoEx5h7Kypw==/com.cocos.android-DYft-JOsiJtUZnfs76shKw==/base.apk!libcocos.so (offset 0xd49000) (cc::gfx::DeviceAgent::doInit(cc::gfx::DeviceInfo const&)+36) (BuildId: 0552e627195b34ecef2efe3967dd89b996572fb6)
                                                                                                                             cc::gfx::DeviceAgent::doInit(cc::gfx::DeviceInfo const&)
                                                                                                                             /Users/pt/Github/cocos2d-x-lite/cocos/renderer/gfx-agent/DeviceAgent.cpp:64:18
#07 0x0000000000ab4b40 /data/app/~~p9zTo5KitjqyoEx5h7Kypw==/com.cocos.android-DYft-JOsiJtUZnfs76shKw==/base.apk!libcocos.so (offset 0xd49000) (cc::gfx::Device::initialize(cc::gfx::DeviceInfo const&)+236) (BuildId: 0552e627195b34ecef2efe3967dd89b996572fb6)
                                                                                                                             cc::gfx::Device::initialize(cc::gfx::DeviceInfo const&)
                                                                                                                             /Users/pt/Github/cocos2d-x-lite/cocos/renderer/gfx-base/GFXDevice.cpp:72:12
#08 0x0000000001184d68 /data/app/~~p9zTo5KitjqyoEx5h7Kypw==/com.cocos.android-DYft-JOsiJtUZnfs76shKw==/base.apk!libcocos.so (offset 0xd49000) (cc::gfx::DeviceValidator::doInit(cc::gfx::DeviceInfo const&)+36) (BuildId: 0552e627195b34ecef2efe3967dd89b996572fb6)
                                                                                                                             cc::gfx::DeviceValidator::doInit(cc::gfx::DeviceInfo const&)
                                                                                                                             /Users/pt/Github/cocos2d-x-lite/cocos/renderer/gfx-validator/DeviceValidator.cpp:63:18
#09 0x0000000000ab4b40 /data/app/~~p9zTo5KitjqyoEx5h7Kypw==/com.cocos.android-DYft-JOsiJtUZnfs76shKw==/base.apk!libcocos.so (offset 0xd49000) (cc::gfx::Device::initialize(cc::gfx::DeviceInfo const&)+236) (BuildId: 0552e627195b34ecef2efe3967dd89b996572fb6)
                                                                                                                             cc::gfx::Device::initialize(cc::gfx::DeviceInfo const&)
                                                                                                                             /Users/pt/Github/cocos2d-x-lite/cocos/renderer/gfx-base/GFXDevice.cpp:72:12
#10 0x0000000000c54170 /data/app/~~p9zTo5KitjqyoEx5h7Kypw==/com.cocos.android-DYft-JOsiJtUZnfs76shKw==/base.apk!libcocos.so (offset 0xd49000) (bool cc::gfx::DeviceManager::tryCreate<cc::gfx::GLES3Device, void>(cc::gfx::DeviceInfo const&, cc::gfx::Device**)+124) (BuildId: 0552e627195b34ecef2efe3967dd89b996572fb6)
                                                                                                                             bool cc::gfx::DeviceManager::tryCreate<cc::gfx::GLES3Device, void>(cc::gfx::DeviceInfo const&, cc::gfx::Device**)
                                                                                                                             /Users/pt/Github/cocos2d-x-lite/cocos/renderer/GFXDeviceManager.h:116:22
#11 0x0000000000c54038 /data/app/~~p9zTo5KitjqyoEx5h7Kypw==/com.cocos.android-DYft-JOsiJtUZnfs76shKw==/base.apk!libcocos.so (offset 0xd49000) (cc::gfx::DeviceManager::create(cc::gfx::DeviceInfo const&)+84) (BuildId: 0552e627195b34ecef2efe3967dd89b996572fb6)
                                                                                                                             cc::gfx::DeviceManager::create(cc::gfx::DeviceInfo const&)
                                                                                                                             /Users/pt/Github/cocos2d-x-lite/cocos/renderer/GFXDeviceManager.h:77:13
#12 0x0000000000c1b204 /data/app/~~p9zTo5KitjqyoEx5h7Kypw==/com.cocos.android-DYft-JOsiJtUZnfs76shKw==/base.apk!libcocos.so (offset 0xd49000) (BuildId: 0552e627195b34ecef2efe3967dd89b996572fb6)
                                                                                                                             js_gfx_DeviceManager_create(se::State&)
                                                                                                                             /Users/pt/Github/cocos2d-x-lite/cocos/bindings/auto/jsb_gfx_auto.cpp:20863:35
#13 0x0000000000c1afdc /data/app/~~p9zTo5KitjqyoEx5h7Kypw==/com.cocos.android-DYft-JOsiJtUZnfs76shKw==/base.apk!libcocos.so (offset 0xd49000) (js_gfx_DeviceManager_createRegistry(v8::FunctionCallbackInfo<v8::Value> const&)+304) (BuildId: 0552e627195b34ecef2efe3967dd89b996572fb6)
                                                                                                                             js_gfx_DeviceManager_createRegistry(v8::FunctionCallbackInfo<v8::Value> const&)
                                                                                                                             /Users/pt/Github/cocos2d-x-lite/cocos/bindings/auto/jsb_gfx_auto.cpp:20872:1
#14 0x0000000001d18d84 /data/app/~~p9zTo5KitjqyoEx5h7Kypw==/com.cocos.android-DYft-JOsiJtUZnfs76shKw==/base.apk!libcocos.so (offset 0xd49000) (v8::internal::FunctionCallbackArguments::Call(v8::internal::CallHandlerInfo)+532) (BuildId: 0552e627195b34ecef2efe3967dd89b996572fb6)
                                                                                                                             v8::internal::FunctionCallbackArguments::Call(v8::internal::CallHandlerInfo)
                                                                                                                             ??:0:0
#15 0x0000000001d183e0 /data/app/~~p9zTo5KitjqyoEx5h7Kypw==/com.cocos.android-DYft-JOsiJtUZnfs76shKw==/base.apk!libcocos.so (offset 0xd49000) (BuildId: 0552e627195b34ecef2efe3967dd89b996572fb6)
                                                                                                                             v8::internal::MaybeHandle<v8::internal::Object> v8::internal::(anonymous namespace)::HandleApiCallHelper<false>(v8::internal::Isolate*, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::FunctionTemplateInfo>, v8::internal::Handle<v8::internal::Object>, v8::internal::BuiltinArguments)
                                                                                                                             ??:0:0
#16 0x0000000001d17bb4 /data/app/~~p9zTo5KitjqyoEx5h7Kypw==/com.cocos.android-DYft-JOsiJtUZnfs76shKw==/base.apk!libcocos.so (offset 0xd49000) (BuildId: 0552e627195b34ecef2efe3967dd89b996572fb6)
                                                                                                                             v8::internal::Builtin_Impl_HandleApiCall(v8::internal::BuiltinArguments, v8::internal::Isolate*)
                                                                                                                             ??:0:0
#17 0x0000000001c326a8 /data/app/~~p9zTo5KitjqyoEx5h7Kypw==/com.cocos.android-DYft-JOsiJtUZnfs76shKw==/base.apk!libcocos.so (offset 0xd49000) (BuildId: 0552e627195b34ecef2efe3967dd89b996572fb6)
                                                                                                                             Builtins_CEntry_Return1_DontSaveFPRegs_ArgvOnStack_BuiltinExit
                                                                                                                             ??:0:0
Crash dump is completed

I have same problem
Anyone fixed this issues?

I saw an report here : https://discuss.cocos2d-x.org/t/game-crashing-on-android-11-api-30/54371/2

But not clear how to resolve it

Not 100% got crash on android 11 sdk 30
I tested on some phone with same specification,no crashing there

Device i got crash is :
Oppo Reno3 arm64

@PatriceJiang
Do you have an hotfix or the ways how to fix this?

I need this correction soon,could you help me?

@dev-keishen sorry, we don't know how to fix it currently. It seems Android OS breaks something. We have sent a mail to google to ask for help.

@minggo
Ok,let me know when this correction done,we will upgrade to 3.3
For now we'll come back 3.1.1 again

We will update the information here. 3.1.1 can work?

Thanks for the information.

@dev-keishen Can you try if this commit fixes the problem?

@PatriceJiang
oke,i will try

@PatriceJiang
I confirm it work on android 11
We will do quick check again on other android platform
Thank for your working hard