简体   繁体   中英

Crash during game loading: Understanding of "JNI critical lock held for ..."

my LibGDX Android game crashes randomly during loading. I guess it has something to do with Android killing my app because of a long running task in the main thread or memory problems.

In this regard I'd like to understand the meaning of those lines in my log:

03-12 10:00:18.444  5522  5540 W com.asdfasdf: JNI critical lock held for 38.485ms on Thread[13,tid=5540,Runnable,Thread*=0x9d711000,peer=0xa3e40000,"GLThread 248"]
03-12 10:00:18.498  5522  5540 W com.asdfasdf: JNI critical lock held for 18.423ms on Thread[13,tid=5540,Runnable,Thread*=0x9d711000,peer=0xa3e40000,"GLThread 248"]
03-12 10:00:20.236  5522  5540 W com.asdfasdf: JNI critical lock held for 136.530ms on Thread[13,tid=5540,Runnable,Thread*=0x9d711000,peer=0xa3e40000,"GLThread 248"]
03-12 10:00:20.321  5522  5540 W com.asdfasdf: JNI critical lock held for 59.744ms on Thread[13,tid=5540,Runnable,Thread*=0x9d711000,peer=0xa3e40000,"GLThread 248"]
03-12 10:00:20.700  5522  5540 W com.asdfasdf: JNI critical lock held for 49.684ms on Thread[13,tid=5540,Runnable,Thread*=0x9d711000,peer=0xa3e40000,"GLThread 248"]

I couldn't find much on this topic. The log lines are classified as warnings, but I'm not quite sure what they want to tell me.

The game then finishes with these lines and provide me with a tombstone (hurray..):

03-12 10:00:27.631  5522  5532 F libc    : Fatal signal 6 (SIGABRT), code -6 (SI_TKILL) in tid 5532 (FinalizerDaemon), pid 5522 (com.asdfasdfe)
03-12 10:00:27.839  5618  5618 F DEBUG   : pid: 5522, tid: 5532, name: FinalizerDaemon  >>> com.asdfasdfe <<<
03-12 10:00:28.769  1944  5625 W ActivityManager:   Force finishing activity com.asdfasdfe/.AndroidLauncher
03-12 10:00:28.809  1944  2026 W InputDispatcher: channel '5f19156 com.asdfasdfe/com.asdfasdfe.AndroidLauncher (server)' ~ Consumer closed input channel or an error occurred.  events=0x9
03-12 10:00:28.810  1944  2026 E InputDispatcher: channel '5f19156 com.asdfasdfe/com.asdfasdfe.AndroidLauncher (server)' ~ Channel is unrecoverably broken and will be disposed!

There's a memory-intensive operation in one of your internal libraries. Do a trace to find what library is using the memory for read / write operations or background tasks. To solve the problem, you might need to increase the buffer and add some checks to prevent too much memory allocation.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM