現在Androidアプリの作成を行って、
少しつまずいた点があるのでお聞きしたく投稿致しました。
現在、C言語で作成したプログラムを、
JNIを用いて実行しようとしているのですが、
下記のようなエラーが表示されます
ERROR/AndroidRuntime(746): Caused by: java.lang.UnsatisfiedLinkError:
Cannot load library: link_image[1962]: 33 could not load needed
library 'libglib-2.0.so.0' for 'libetest.so' (load_library[1104]:
Library 'libglib-2.0.so.0' not found)
これは、libglib-2.0.so.0が足りてないと思い
libs/armeabiにlibglib-2.0.so.0を入れて実行したのですが、
同じエラーが出てしまいました。
エミュレータの端末を見てみると、
/data/data/(Application Name)/lib内に配置されていないことから、
もしかしたら、.soでなく.so.0等の最後に数字が付いていると
読んでくれないのではないかと推測しています。
このようなCのライブラリを読み込む際、
読み込めるライブラリ・読み込めないライブラリ等の制限とかはあるのでしょうか。
ご教授お願い致します。
--
---------------------
兵庫県立大学大学院応用情報科学研究科 M2
松本 悦宜 MATSUMOTO Yoshinori
nsd0...@gmail.com
090-1957-6017
---------------------
JNIで開発していますけど、libglibでのCannot load libraryは出したことは無いです。(^^;
http://blog.so-net.ne.jp/user_localhost_sec/2011-03-15
このサイトの人の方法で対応できますか?
2011年6月8日11:19 松本悦宜 <nsd0...@gmail.com>:
> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。
>
>
多分何かの手順がおかしいです。
通常はjni/Android.mkにこれぐらい書いておけば、
あとは全部ndk-buildが自動でやってくれます。
(-Wallと-llogは当然オプション)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := NativeHelloWorld
LOCAL_SRC_FILES := NativeHelloWorld.cpp
LOCAL_CPPFLAGS := -Wall
LOCAL_LDLIBS := -llog
include $(BUILD_SHARED_LIBRARY)
NDKのdocs/の下にドキュメントがあります。
ndk使ってますか?
android1.6とndkはr3しか知りませんが、
android.mkでbuildしたならリンクが
解決されなければ、失敗するはずです。
(soが生成されないはず)
libglib.soならsystem/libにあったような気がします。
解決策としては、libglib-2.0.so.0を取り込めば良いと
思います。
ご回答ありがとうございます。
リンクやサンプルまで書いて頂き大変参考になりました。
使いたい共有ライブラリの方はもともとあるファイルだったので、
NDKでビルドをしていませんでした。。。
ライブラリを大量に使っているソースだったので
横着をしようと思ってたのがいけなかったみたいです。。。(´Д⊂ヽ
NDKでビルドしてみたところ、
ライブラリが読み込めないエラーが出てきたので、
このあたりのエラーを解決していこうと思っています。
また分からないことがあれば、お聞きするかもしれないので、
ご教授いただけたら嬉しく思います。
2011年6月9日7:17 ohisamallc <pen...@mui.biglobe.ne.jp>:
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。
>
>
--