1

我尝试加载一个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)

有谁知道可能出了什么问题?

4

3 回答 3

0

使用System.loadLibrary而不是System.load

于 2012-12-12T11:26:37.300 回答
0

@Valelik:遇到完全相同的问题:到目前为止运行良好的 NDK 库,并开始以相同的方式在 Jelly Bean 上崩溃(由于 System.load() 调用导致的 SIGSEGV)。谷歌搜索,我没有找到任何东西..在我的情况下,系统不断尝试加载库并崩溃,等等..这个问题有什么更新吗?

于 2012-12-17T22:32:33.263 回答
-1

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

于 2012-12-11T10:16:51.233 回答