libgdx游戏在某些设备上崩溃

13

应用程序启动后,在Samsung Note 1设备上没有错误消息就崩溃了。这只在Note 1上发生(至少,不能在所有设备上测试),而在Motorola Moto G或Galaxy s4mini上却没有。唯一的提示是调试器中得到的。我将其粘贴如下。究竟发生了什么,为什么它只在某些设备上崩溃?

编辑:从“运行的应用程序”菜单返回应用程序时也会崩溃。Note 1安装了CyanogenMod。也许这与崩溃有关。

编辑2:另一个观察结果是,Note 1分配的内存只有其他两个设备的一半。这是否与崩溃有关?

01-05 17:00:16.212 13486-13513/com.mygdx.myGame.android D/dalvikvm: Trying to load lib /data/app-lib/com.mygdx.myGame.android-2/libgdx-freetype.so 0x42441a58
    01-05 17:00:16.222 13486-13513/com.mygdx.myGame.android D/dalvikvm: Added shared lib /data/app-lib/com.mygdx.myGame.android-2/libgdx-freetype.so 0x42441a58
    01-05 17:00:16.222 13486-13513/com.mygdx.myGame.android D/dalvikvm: No JNI_OnLoad found in /data/app-lib/com.mygdx.myGame.android-2/libgdx-freetype.so 0x42441a58, skipping init

我有一部安装了CyanogenMod的三星Galaxy Note 1手机,你认为我能以某种方式提供帮助吗?我至少想尝试安装它,看看它是否适用于我的手机。之前我使用的自定义ROM在Skype上出现了奇怪的崩溃,而我安装的这个新ROM完全正常。 - EpicPandaForce
2个回答

7
“JNI_OnLoad”函数对于Android应用程序并非必要,甚至不是错误。您的问题来自代码的其他部分。即使您没有提供此函数,您的程序也应该正常运行。
有关可能有帮助的JNI_OnLoad参考资料-链接1 | 链接2 | 链接3 不过,有一种方法可以解决它-
尝试使用ndk-gdb进行修复。
ndk-gdb的参考资料-developer.android.com | Stackoverflow 我在大部分项目中都遇到了这个问题。这与Android应用程序崩溃无关。
您的应用程序中有其他导致崩溃的原因。以下是一些有助于调试的提示:
1.如果应用程序在Playstore上,请检查日志(错误的具体内容)。它们会给出堆栈跟踪,有助于调试。
2.如果应用程序不在Playstore上,则唯一的方法是对产生错误的手机进行远程调试。
3.我也遇到过类似的经历,很多时候是由于API更改引起的。我的意思是,API可能从一个Android版本更改为另一个版本(从Kitkat到Lollipop-有很多重大变化!)请检查一下。我的大多数应用程序都有很多问题是由于此原因引起的。
4.某些手机在处理数据库(sqlite或您在手机上使用的任何其他内容)事务时非常严格。我的意思是,在某个应用程序中,当DB在所有事务结束时未关闭时,该应用程序在大多数三星和HTC手机上会强制关闭。而它在大多数其他手机上运行得非常好。
希望能有所帮助 :) 祝编码愉快!

1
谢谢您告诉我,“错误”无需担心。在使用纹理图集替换纹理后,神奇地消失了错误。至少我认为这可能是原因... - potato

2

自己记住:始终使用资源管理器和纹理图集。

在开发过程中,我最终用纹理图集替换了所有纹理,并与资源管理器结合使用。 我没有改变任何逻辑。 不知何故,应用程序停止崩溃了。 无法解释,但我认为资源管理器和纹理图集起了作用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接