System.load()上的应用程序崩溃

时间:2012-12-11 10:07:39

标签: android android-ndk

我尝试使用

加载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)

有没有人知道什么是错的?

3 个答案:

答案 0 :(得分:0)

使用System.loadLibrary代替System.load

答案 1 :(得分:0)

@Valelik:得到完全相同的问题:到目前为止工作正常的NDK库,并且在Jelly Bean上以相同的方式(由于System.load()调用导致的SIGSEGV)开始崩溃。 google搜索,我没有找到任何东西..在我的情况下,系统不断尝试加载lib和崩溃,等等.. 此问题有任何更新吗?

答案 2 :(得分:-1)

我的猜测是文件对象在库可以查看它的路径内存之前被垃圾收集。尝试将File保存为类变量。