1

NDK ライブラリをロードしようとしています

    File file = new File(context.getFilesDir(), "mylib.so");
    System.load(file.getAbsolutePath());`

通常は動作しますが、一部の顧客から、Samsung Galaxy S3 でアプリがクラッシュするという報告がありました (4.1.1 への最後の更新以降の可能性があります)。ここにGalaxy S3があり、実際にクラッシュします:( System.load() 呼び出し中にアプリが完全にクラッシュし、例外は表示されず、LogCatにエラーメッセージが1つだけ表示されます:

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 に答える