【发布时间】:2013-12-16 17:37:27
【问题描述】:
我正在编写一个游戏,并且我有庞大的本地库,我正在尝试将我的本地库加载到我的主要活动中,例如
static {
try {
System.loadLibrary("mylib");
} catch (UnsatisfiedLinkError e) {
Log.d(TAG, "Unsatisfied Link error: " + e.toString());
}
}
我已经在内部的许多设备上测试了此代码,但我没有收到此错误。但从我发表的文章中,我确实得到了带有“Caused by: java.lang.UnsatisfiedLinkError: Cannot load library”的日志。注意:这种崩溃不是普遍的,只有少数人会遇到这种崩溃
- 库放在导出的 apk 中是否有问题?我现在已经通过 Eclipse 自动将库放入 /libs/armabi/libmylib.so 中?
- 是不是跟安卓版本有关系?我从 2.3(API 级别 9)开始支持 android 版本
- 还是我需要从不同的地方加载库?
- 或者我错过了一些非常重要的东西
- 整个应用安装在 SDCARD 上是否有问题?
有关崩溃的更多信息是:load_segments: 68 failed to map segment from mylib.so
【问题讨论】:
-
我有庞大的原生库,有多大?可能是不满足某些内存要求,系统无法加载。
-
~ 7MB(调试版)
-
这绝对不是内存问题。您在什么设备上解决了这个问题?
-
你编译它的处理器架构是什么?大多数较新的设备使用 ARM7 处理器,而一些较旧的设备使用 ARM6。如果您针对 ARM7 编译本机库,它可能无法在 ARM6 上加载。
-
@blackbelt:有问题的设备是 Desire HD,这是来自 google play 评论。不过,我无法用我的 HTC 愿望重现此问题。
标签: android