LibGDX中的错误:JNI错误(app bug):NULL指针的非零容量:80000

Cha*_*adi 2 java-native-interface dalvik libgdx

我在LibGdx中遇到了一个新错误,它表示Null指针的非零容量!这个错误是什么意思?

E/dalvikvm(28069):JNI ERROR(app bug):NULL指针的非零容量:80000

P.T*_*.T. 6

该错误来自NewDirectByteBuffer第2725行(本副本)Jni.cpp:https://android.googlesource.com/platform/dalvik/+/3a7af00/vm/Jni.cpp

一些本机代码正在尝试初始化NIO DirectByteBuffer,并以初始大小80,000和NULL指针传递.由于这没有意义(指针应该是非NULL),因此抛出异常.指针很可能是NULL,因为80,000字节的分配失败,很可能是因为你的应用程序内存不足,或者因为内存变得如此碎片化,80k不能连续可用.

从技术上讲,调用者的代码中存在一个小错误.它可能应该引发更直接的观点OutOfMemoryError,但这个想法和最终结果是一样的.

由于80k不是很大,统计上可能的情况是你有内存泄漏(很可能是这个对象).

如果你有来自dalvik日志的回溯,它可能有助于确定这个特定错误的来源.这对于修复OutOfMemoryErrorbug 很方便(可能是在Libgdx中,或者在box2d中,或者在Android使用的任何本机库中,没有更多细节就不可能说).但是,问题的真正根源是你的内存泄漏.使用Eclipse DDMS堆跟踪工具来确定问题的来源.