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