我尝试使用
加载NDK库 File file = new File(context.getFilesDir(), "mylib.so");
System.load(file.getAbsolutePath());`
它通常有效,但我的一些客户报告三星Galaxy S3上的应用程序崩溃(可能是自上次更新到4.1.1以来)。现在我在这里有一个Galaxy S3,事实上它崩溃了:(应用程序在System.load()调用期间完全崩溃,我没有收到任何异常,只有LogCat中的一条错误消息:
12-11 10:50:03.510: A/libc(29583): Fatal signal 11 (SIGSEGV) at 0x5d53901c (code=2), thread 29583 (trol.myapp)
有没有人知道什么是错的?
答案 0 :(得分:0)
使用System.loadLibrary
代替System.load
答案 1 :(得分:0)
@Valelik:得到完全相同的问题:到目前为止工作正常的NDK库,并且在Jelly Bean上以相同的方式(由于System.load()调用导致的SIGSEGV)开始崩溃。 google搜索,我没有找到任何东西..在我的情况下,系统不断尝试加载lib和崩溃,等等.. 此问题有任何更新吗?
答案 2 :(得分:-1)
我的猜测是文件对象在库可以查看它的路径内存之前被垃圾收集。尝试将File保存为类变量。