2

Android クラスに次のようなネイティブ メソッドがあります。

public native void decode(Bitmap pTarget, byte[] pSource);

Externla 構成ツールから Eclipse Javah ツールを使用してヘッダー ファイルを作成しようとすると、次のようなメッセージが表示されます。

エラー: ビットマップの署名を判別できません

ネイティブ メソッド宣言を削除すると、これは発生しません。この問題をデバッグして、javah が Bitmap の署名を見つけられるようにするにはどうすればよいですか?

4

1 に答える 1

3

クラスはBitmapパッケージ「android.graphics.Bitmap」に属しているため、その JNI タイプはLandroid/graphics/Bitmap;

完全なメソッド シグネチャは次のようになります。

void Java_yourPackage_yourClass_decode__Landroid_graphics_Bitmap_2_3B (JNIEnv *env、jobject thiz、jobject pTarget、jbyteArray pSource)

ソース: http://docs.oracle.com/javase/6/docs/technotes/guides/jni/spec/design.html#wp615 http://docs.oracle.com/javase/6/docs/technotes/guides /jni/spec/types.html

編集: javah ツールは Android クラスを認識しないため、javah コマンドに classpath オプションを追加する必要があります。これを見てみてください: https://stackoverflow.com/a/7635758/3370382

于 2014-03-02T14:46:14.553 に答える