cocos-engine icon indicating copy to clipboard operation
cocos-engine copied to clipboard

【Android】在Cocos所在的Activity的被其他的Activity覆盖或者不可见的时候出现JNI ERROR

Open huangtaoOO opened this issue 1 year ago • 0 comments

Cocos Creator version

3.8.2

System information

Android 11

Issue description

如题,在Cocos所在的Activity从onResume进入的onStop的情况下。CocosWebSocket在回调信息给JNI的过程中,出现NI ERROR (app bug): global reference table overflow (max=51200)global reference table dump。错误异常。 具体原因为: 截屏2024-08-17 15 37 41 在非Resume状态下,执行411行,但是413到419均未执行,导致NewGlobalRef创建的引用无法回收,从而超过上限导致崩溃。

Relevant error log output

Native 堆栈 signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr -------- x0 0000000000000000 x1 0000000000007c03 x2 0000000000000006 x3 0000006e54c6bb90 x4 1f301eff1f5c3235 x5 1f301eff1f5c3235 x6 1f301eff1f5c3235 x7 7f7f7f7f7f7f7f7f x8 00000000000000f0 x9 315c6e2cabfad1dd x10 0000000000000000 x11 ffffffc0fffffbdf x12 0000000000000001 x13 00000000000001fd x14 0000000000000002 x15 0000000034155555 x16 00000071ca948c80 x17 00000071ca92aa10 x18 0000006d597ce000 x19 00000000000041ee x20 0000000000007c03 x21 00000000ffffffff x22 000000000000000b x23 000000000000000b x24 0000006ed5c31000 x25 0000000000000001 x26 00000071caa7686c x27 0000006ed5c33000 x28 0000006ed5c34000 x29 0000006e54c6bc10 sp 0000006e54c6bb70 lr 00000071ca8de420 pc 00000071ca8de44c

backtrace: #00 pc 000000000004e44c /apex/com.android.runtime/lib64/bionic/libc.so (abort+164) #01 pc 000000000055d084 /apex/com.android.art/lib64/libart.so (_ZN3art7Runtime5AbortEPKc+2312) #02 pc 000000000001397c /system/lib64/libbase.so #03 pc 0000000000012fa8 /system/lib64/libbase.so (_ZN7android4base10LogMessageD1Ev+324) #04 pc 0000000000386ba0 /apex/com.android.art/lib64/libart.so (_ZN3art9JavaVMExt12AddGlobalRefEPNS_6ThreadENS_6ObjPtrINS_6mirror6ObjectEEE+272) #05 pc 00000000003994e8 /apex/com.android.art/lib64/libart.so #06 pc 000000000049aa88 /data/app/~~7_SJBWl0csBUP83EuZg9sA==/xxx.xxx.xxx-QjOmptEK_NPrRUycD3bgBw==/base.apk!/lib/arm64-v8a/libcocos.so (Java_com_cocos_lib_websocket_CocosWebSocket_nativeOnBinaryMessage+56) #07 pc 000000000007414c /data/app/~~7_SJBWl0csBUP83EuZg9sA==/xxx.xxx.xxx-QjOmptEK_NPrRUycD3bgBw==/oat/arm64/base.odex

java 堆栈 java stacktrace: at com.cocos.lib.websocket.CocosWebSocket.nativeOnBinaryMessage(Native method) at com.cocos.lib.websocket.CocosWebSocket.onMessage(CocosWebSocket.java:292) at org.cocos2dx.okhttp3.internal.ws.RealWebSocket.onReadMessage(RealWebSocket.java:327) at org.cocos2dx.okhttp3.internal.ws.WebSocketReader.readMessageFrame(WebSocketReader.java:221) at org.cocos2dx.okhttp3.internal.ws.WebSocketReader.processNextFrame(WebSocketReader.java:105) at org.cocos2dx.okhttp3.internal.ws.RealWebSocket.loopReader(RealWebSocket.java:274) at org.cocos2dx.okhttp3.internal.ws.RealWebSocket$2.onResponse(RealWebSocket.java:214) at org.cocos2dx.okhttp3.RealCall$AsyncCall.execute(RealCall.java:203) at org.cocos2dx.okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:923)

Logcat: 08-16 22:54:12.971 16878 31747 F e.compass.coco: java_vm_ext.cc:673] JNI ERROR (app bug): global reference table overflow (max=51200)global reference table dump: 08-16 22:54:12.971 16878 31747 F e.compass.coco: java_vm_ext.cc:673] Last 10 entries (of 51200): 08-16 22:54:12.971 16878 31747 F e.compass.coco: java_vm_ext.cc:673] 51199: 0x7281cf0 byte[] (467 elements) 08-16 22:54:12.971 16878 31747 F e.compass.coco: java_vm_ext.cc:673] 51198: 0xd3415e8 byte[] (19 elements) 08-16 22:54:12.971 16878 31747 F e.compass.coco: java_vm_ext.cc:673] 51197: 0xd340fa0 byte[] (1540 elements) 08-16 22:54:12.971 16878 31747 F e.compass.coco: java_vm_ext.cc:673] 51196: 0xd480270 byte[] (174 elements) 08-16 22:54:12.971 16878 31747 F e.compass.coco: java_vm_ext.cc:673] 51195: 0x72c1370 byte[] (4934 elements) 08-16 22:54:12.971 16878 31747 F e.compass.coco: java_vm_ext.cc:673] 51194: 0x7280d88 byte[] (3426 elements) 08-16 22:54:12.971 16878 31747 F e.compass.coco: java_vm_ext.cc:673] 51193: 0xd4800d8 byte[] (174 elements) 08-16 22:54:12.971 16878 31747 F e.compass.coco: java_vm_ext.cc:673] 51192: 0xd3404c8 byte[] (1184 elements) 08-16 22:54:12.971 16878 31747 F e.compass.coco: java_vm_ext.cc:673] 51191: 0xd3e8460 byte[] (5254 elements) 08-16 22:54:12.971 16878 31747 F e.compass.coco: java_vm_ext.cc:673] 51190: 0x7c5d4000 byte[] (120716 elements) 08-16 22:54:12.971 16878 31747 F e.compass.coco: java_vm_ext.cc:673] Summary: 08-16 22:54:12.971 16878 31747 F e.compass.coco: java_vm_ext.cc:673] 12184 of byte[] (174 elements) (12184 unique instances) 08-16 22:54:12.971 16878 31747 F e.compass.coco: java_vm_ext.cc:673] 3443 of byte[] (3981 elements) (3443 unique instances) 08-16 22:54:12.971 16878 31747 F e.compass.coco: java_vm_ext.cc:673] 1938 of byte[] (467 elements) (1938 unique instances) 08-16 22:54:12.971 16878 31747 F e.compass.coco: java_vm_ext.cc:673] 1887 of byte[] (1094 elements) (1887 unique instances) 08-16 22:54:12.971 16878 31747 F e.compass.coco: java_vm_ext.cc:673] 1200 of byte[] (3974 elements) (1200 unique instances) 08-16 22:54:12.971 16878 31747 F e.compass.coco: java_vm_ext.cc:673] 1004 of java.lang.Class (841 unique instances) 08-16 22:54:12.971 16878 31747 F e.compass.coco: java_vm_ext.cc:673] 956 of byte[] (3654 elements) (956 unique instances) 08-16 22:54:12.971 16878 31747 F e.compass.coco: java_vm_ext.cc:673] 769 of byte[] (1414 elements) (769 unique instances) 08-16 22:54:12.971 16878 31747 F e.compass.coco: java_vm_ext.cc:673] 746 of byte[] (143 elements) (746 unique instances) 08-16 22:54:12.971 16878 31747 F e.compass.coco: java_vm_ext.cc:673] 724 of byte[] (480 elements) (724 unique instances) 08-16 22:54:12.971 16878 31747 F e.compass.coco: java_vm_ext.cc:673] 717 of byte[] (774 elements) (717 unique instances) 08-16 22:54:12.971 16878 31747 F e.compass.coco: java_vm_ext.cc:673] 712 of byte[] (4294 elements) (712 unique instances) 08-16 22:54:12.971 16878 31747 F e.compass.coco: java_vm_ext.cc:673] 622 of byte[] (3334 elements) (622 unique instances) 08-16 22:54:12.971 16878 31747 F e.compass.coco: java_vm_ext.cc:673] 516 of byte[] (18 elements) (516 unique instances) 08-16 22:54:12.971 16878 31747 F e.compass.coco: java_vm_ext.cc:673] 491 of byte[] (1170 elements) (491 unique instances) 08-16 22:54:12.971 16878 31747 F e.compass.coco: java_vm_ext.cc:673] 476 of byte[] (1212 elements) (476 unique instances) 08-16 22:54:12.971 16878 31747 F e.compass.coco: java_vm_ext.cc:673] 470 of byte[] (1184 elements) (470 unique instances) 08-16 22:54:12.971 16878 31747 F e.compass.coco: java_vm_ext.cc:673] 437 of byte[] (1156 elements) (437 unique instances) 08-16 22:54:12.971 16878 31747 F e.compass.coco: java_vm_ext.cc:673] 420 of byte[] (978 elements) (420 unique instances) 08-16 22:54:12.971 16878 31747 F e.compass.coco: java_vm_ext.cc:673] 388 of byte[] (1703 elements) (388 unique instances) 08-16 22:54:12.971 16878 31747 F e.compass.coco: java_vm_ext.cc:673] 359 of byte[] (3014 elements) (359 unique instances) 08-16 22:54:12.971 16878 31747 F e.compass.coco: java_vm_ext.cc:673] 346 of byte[] (19 elements) (346 unique instances) 08-16 22:54:12.971 16878 31747 F e.compass.coco: java_vm_ext.cc:673] 316 of byte[] (1198 elements) (316 unique instances) 08-16 22:54:12.971 16878 31747 F e.compass.coco: java_vm_ext.cc:673] 296 of java.nio.DirectByteBuffer (296 unique instances) 08-16 22:54:12.971 16878 31747 F e.compass.coco: java_vm_ext.cc:673] 275 of byte[] (620 elements) (275 unique instances) 08-16 22:54:12.971 16878 31747 F e.compass.coco: java_vm_ext.cc:673] 261 of byte[] (1689 elements) (261 unique instances) 08-16 22:54:12.971 16878 31747 F e.compass.coco: java_vm_ext.cc:673] 258 of byte[] (1675 elements) (258 unique instances) 08-16 22:54:12.971 16878 31747 F e.compass.coco: java_vm_ext.cc:673] 247 of byte[] (4614 elements) (247 unique instances) 08-16 22:54:12.971 16878 31747 F e.compass.coco: java_vm_ext.cc:673]

Steps to reproduce

可以尝试创建一个简单的有使用WebSocket链接通讯的Demo,并在这个Demo中start另外一个Activity。

Minimal reproduction project

No response

huangtaoOO avatar Aug 17 '24 07:08 huangtaoOO