我的 Android 类中有一个本机方法:
public native void decode(Bitmap pTarget, byte[] pSource);
当我尝试使用来自 Externla 配置工具的 Eclipse Javah 工具创建头文件时,我收到一条消息:
错误:无法确定位图的签名
如果我删除本机方法声明,则不会发生这种情况。如何调试此问题以确保 javah 可以找到位图的签名?
我的 Android 类中有一个本机方法:
public native void decode(Bitmap pTarget, byte[] pSource);
当我尝试使用来自 Externla 配置工具的 Eclipse Javah 工具创建头文件时,我收到一条消息:
错误:无法确定位图的签名
如果我删除本机方法声明,则不会发生这种情况。如何调试此问题以确保 javah 可以找到位图的签名?
该类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