应用程序启动后,我的应用程序在设备上无错误消息。这只发生在Samsung Note 1上(至少不能在所有设备上测试),但不能在Motorola Moto G或Galaxy s4mini上测试。我得到的唯一提示是在调试器中。我把它贴在下面。究竟发生了什么以及为什么它只在某些设备上崩溃?
编辑:它从"运行应用程序"返回应用程序时也崩溃了菜单。注1已安装CyanogenMod。也许这与崩溃有关。
Edit2:另一个观察结果:注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
答案 0 :(得分:7)
功能" JNI_OnLoad" 对于Android应用程序来说不是必需的。这甚至都不是错误。您的问题来自代码的另一部分。即使您没有提供此功能,您的程序也应该正常运行。
对JNI_OnLoad的引用可能会有所帮助 - Link 1 | Link 2 | Link 3 强>
虽然有修复方法 -
尝试使用 ndk-gdb
进行修复。
ndk-gdb的引用 - developer.android.com | Stackoverflow 强>
我确实遇到了这个问题,就像我所做的大多数项目一样。这与Android应用程序崩溃无关。
您的应用中还有其他内容正在崩溃。一些提示可以帮助您调试 -
检查Playstore(如果它在Playstore上)以查找日志(错误到底是什么)。它们提供堆栈跟踪,有助于调试。
如果它不在Playstore上,只有前进的方法是在发出错误的手机上进行远程调试。
由于API的变化,我有过这样的经历,以及它的最佳时间。我的意思是,API会从一个Android版本变为另一个版本(Kitkat到Lollipop - 有很多重大变化!)检查一次。由于这个原因,我的大多数应用都有很多问题。
对于DB(sqlite或手机上使用的任何交易)交易,有些手机是严格的。我的意思是,在其中一个应用程序中,当数据库在所有交易结束时没有关闭时,该应用程序在大多数三星和HTC手机。虽然它在大多数其他手机上运行良好。
希望它有所帮助:)快乐的编码!
答案 1 :(得分:2)
自我注意:“始终使用资产管理器和纹理图集”
在开发过程中,我最终用纹理图集替换了所有纹理,并与资产管理器结合使用。我根本没有改变任何逻辑。不知何故,应用程序停止崩溃。无法解释它,但我认为资产经理和纹理地图集就可以解决问题。