2012-04-22 14 views
0
  1. 私は、メソッドのシグネチャは、Javaコードから
  2. を呼び出すようにしようとしています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)

  3. 実行時に、System.loadLibraryを( "FLVCam")は、成功しました「RunFlvServer」を呼び出すのに失敗しました。「ネイティブLcom/sophin/flvcam/FLVCamActivity; .RunFlvServer(I)V」の実装が見つかりませんでした。
  4. 使用しているSDKのバージョンは、AndroidSDK = 15、NDK = r7b、minsdk @マニフェスト= 15
  5. 'nm -g'を使用して自分のネイティブライブラリで公開されているすべてのエクスポートエントリを一覧表示すると、ネイティブメソッドが適切にエクスポートされていることを確認できます。 0006c0a8 T Java_com_sophin_flvcam_FlvCamActivity_RunFlvServer

    上記を念頭に置いて、なぜこのUnsatisfiedLink例外が発生しますか? C++方法は 'のFLV'(下位)、IはほとんどA無駄たが

Sophin

+0

Javaのネイティブ関数宣言はどのように見えますか?これはcom.sophin.flvcamパッケージのflvCamActivityクラスにある "native void RunFlvServer(int iCamId)"のようになります。 –

+0

偉大な関数のヘッダーにjavahコマンドを使用すると良いです。 –

答えて

0

でNadavこれはものの大文字/小文字の一種であり、FLVCamActivityは、上部に 'FLV' を有しますMaan、次回は本当のバグに時間を使うことを願っています。