我一直在努力修复我们游戏中的一些最终错误。游戏使用 Irrlicht 和 Bullet 物理的 Android 端口。
在 OS X 和 Windows 上尝试了相同的代码,没有任何问题。但是,当我们将代码移植到 Android NDK 时,现在出现随机崩溃。大多数崩溃都libc.so
可能是空指针异常。我们不在scenenode->remove()
我们的代码中使用,而是使用smgr->addToDeletionQueue
.
崩溃是如此随机,以至于它发生在以下语句中。
libc.so
smgr->drawall()
stepsimulation
在子弹中。
当我们卸载一个关卡并加载下一个关卡或重新加载一个关卡时,90% 的时间都会发生错误。我们首先怀疑编译器并使用了stlport。应该提升图书馆的帮助吗?
我敢肯定,我提供的信息很少能猜出问题所在。但是由于相同的游戏代码在其他平台上运行良好,我只是想清除我对编译器相关差异的怀疑。
一个简单malloc
的然后delete
在 android ndk 中在删除时崩溃。因此,我想更好地了解我们正在努力解决的问题是否是与编译器相关的愚蠢问题。