NDK の sample の hello-jni での定義だと函数名が
Java_com_example_hellojni_HelloJni_stringFromJNI()
となっていますが、これを
Java_[loadLibrary している class の package 名の. を _
に置き換えたもの]_[loadLibrary している class 名]_stringFromJNI()
にしてやったりすると、どうでしょう。
あと、ライブラリーの追加は hello-jni の libs を eclipse の project ディレクトリー直下に copy
(あるいは symbolic link を張る等) して、 eclipse で F5 (refresh)
して認識させてやる方法でも大丈夫かもです。
KT
--
KISAKA Toshihiro
public native String stringFromJNI(); static{ System.loadLibrary("hello-jni"); } を追加し、libhello-jni.soをEclipseのプロジェクトの[import]->[general]->[File System] で インポートしてみたのですが、エミュレータを実行すると上記の System.loadLibrary("hello-jni"); でエラーになってしまいます。
2011/12/23 16:39 "tueda" <tu...@wolf.dog.cx>:
> public native String stringFromJNI();
>
> static{
> System.loadLibrary("hello-jni");
> }
>
> ...
ネイティブライブラリは${呼び出す側のプロジェクト}/libs/armeabi/に置かないとダメです。
Eclipseの設定は特に必要なく上記のディレクトリに置いておくと勝手にパッケージングしてくれます。
(これパス固定だと思っていますが私が知らないだけで変更する方法があるかもしれません。
誰か方法を知っていたら教えて下さい)
手前味噌でよければ私の昔のメモ書きとか参考になるかもしれません(1年前に書いたのでちょっと古い)。
http://tueda.wikkii.com/wiki/Android%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-NDK-HelloWorld
--
このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
このグループに投稿するには、android-group-japan@googlegroups...
そうなのでネイティブライブラリと一緒にそれを呼び出すjarファイルも一緒に
配布します。
AAA.jar と libAAA.so みたいな。
使う方はjarファイルとそれが使用するネイティブライブラリの置き場所を指定
すれば
(特にネイティブライブラリを意識することなく)普通のjarとして利用できます。