2

我的 Android 类中有一个本机方法:

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

当我尝试使用来自 Externla 配置工具的 Eclipse Javah 工具创建头文件时,我收到一条消息:

错误:无法确定位图的签名

如果我删除本机方法声明,则不会发生这种情况。如何调试此问题以确保 javah 可以找到位图的签名?

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 类,因此您必须将 classpath 选项添加到 javah 命令。试着看看这个:https ://stackoverflow.com/a/7635758/3370382

于 2014-03-02T14:46:14.553 回答