java - 游戏加载时崩溃 : Understanding of "JNI critical lock held for ..."

标签 java android libgdx

我的 LibGDX And​​roid 游戏在加载过程中随机崩溃。我想这与 Android 由于主线程中长时间运行的任务或内存问题而杀死我的应用程序有关。

在这方面,我想了解日志中这些行的含义:

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"]

我在这个话题上找不到太多。日志行被归类为警告,但我不太确定他们想告诉我什么。

然后游戏以这些行结束并为我提供墓碑(欢呼..):
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!

最佳答案

您的一个内部库中有一个内存密集型操作。跟踪以查找哪个库正在使用内存进行读/写操作或后台任务。要解决此问题,您可能需要增加缓冲区并添加一些检查以防止内存分配过多。

关于java - 游戏加载时崩溃 : Understanding of "JNI critical lock held for ...",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55117940/

相关文章:

javascript - CORS 干扰 Spring Security oauth2

java - 在 WildFly 应用服务器上使用 Netbeans 进行增量部署时出错

java - 在 IntelliJ 中找不到符号变量 DaggerAppComponent

android - 处理多个 Activity 中的进度对话框

java - 导入gradle项目不会复制内容

java - libGDX API 更改后,舞台上的 Actor 不再接收 touchDown

Java 和泛型

android - 在android小部件中添加水平线

android - 调用 GoogleAccountCredential.newChooseAccountIntent() 后未调用 onActivityResult

java - DeltaTime 未正确更新?