0
- 私は、メソッドのシグネチャは、Javaコードから
を呼び出すようにしようとしていますC++の方法があります:JavaののAndroid JNI UnsatisfiedLink例外
:
パブリッククラスFLVCamActivityが伸びをアクティビティ{
static {
System.loadLibrary( "FLVCam");
System.out.println( "Loaded FLVCam");
}
public native void RunFlvServer(int iCamId);C++:
にextern "C" JNIEXPORT無効JNICALL Java_com_sophin_flvcam_FlvCamActivity_RunFlvServer(JNIEnvの* envを、jオブジェクトjavaThis、JINT iCamId)
- 実行時に、System.loadLibraryを( "FLVCam")は、成功しました「RunFlvServer」を呼び出すのに失敗しました。「ネイティブLcom/sophin/flvcam/FLVCamActivity; .RunFlvServer(I)V」の実装が見つかりませんでした。
- 使用しているSDKのバージョンは、AndroidSDK = 15、NDK = r7b、minsdk @マニフェスト= 15
- 'nm -g'を使用して自分のネイティブライブラリで公開されているすべてのエクスポートエントリを一覧表示すると、ネイティブメソッドが適切にエクスポートされていることを確認できます。 0006c0a8 T Java_com_sophin_flvcam_FlvCamActivity_RunFlvServer。
上記を念頭に置いて、なぜこのUnsatisfiedLink例外が発生しますか? C++方法は 'のFLV'(下位)、IはほとんどA無駄たが
Sophin
Javaのネイティブ関数宣言はどのように見えますか?これはcom.sophin.flvcamパッケージのflvCamActivityクラスにある "native void RunFlvServer(int iCamId)"のようになります。 –
偉大な関数のヘッダーにjavahコマンドを使用すると良いです。 –