Android開発質問スレ Part2 (243レス)
上下前次1-新
抽出解除 レス栞
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
228(1): デフォルトの名無しさん (ワッチョイ be68-zF+6) [sage] 01/17(金)06:33 ID:HG7gwVzM0(1)
gradleでビルドしているアプリにJNIでライブラリのバイナリ(libA.so)をロードしたく、
プロジェクト内でjniLibsというフォルダを作りそこに置いたら、認識はされたようです
ですが、今度は実行時にlibA.soが依存しているlibBが見つからずエラーになります
というわけでlibBもjniLibsに置いてみたのですが、どうやら
- 元のライブラリはlibB.so.1という名前だった
- libB.so.1というファイル名だとjniLibsに置いてもアプリのビルド時に除外されるっぽい
(apkの中を見たときにlibB.so.1が入っていない)
- libB.so.1をllibB.soにファイル名変更するとビルド時に認識されるが、実行時にlibB.so.1
は未解決のまま
というわけで、明示的にlibB.so.1を指定してビルド時にapkに含まれるようにしたら
よさそうだと思いますが、どのようなgradleの指定にしたらいいかご存知の方はいますか?
230(1): デフォルトの名無しさん (ワッチョイ d547-Kw+3) [sage] 01/18(土)12:17 ID:ZEzNbt5p0(1/2)
>>228
WindowsだったらWSLでubuntuとかいれてreadelfコマンドでsoファイルの依存関係が見れる
適当なubuntuのsoファイルを見るとこんな感じ
$ readelf -d /usr/lib/libnetpbm.so.10
.......
0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
0x000000000000000e (SONAME) Library soname: [libnetpbm.so.10]
AndroidStudioで作ったsoファイルも見れてこんな感じになっている
$ readelf -d ~/libfoo.so
.......
0x0000000000000001 (NEEDED) Shared library: [liblog.so]
0x0000000000000001 (NEEDED) Shared library: [libm.so]
0x0000000000000001 (NEEDED) Shared library: [libdl.so]
0x0000000000000001 (NEEDED) Shared library: [libc.so]
0x000000000000000e (SONAME) Library soname: [libfoo.so]
そのlibAとlibBの実際の依存関係もこれで確認できるだろう
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.016s