1
我有一个具有以下本机api签名的java文件。 (First.java)在注册中注册本地层调用失败
public static native int nativePreview(int id, Surface surface);
public static native int nativetest(int id);
和JNI文件,
static JNINativeMethod methods [] = {
{ "nativetest", "(I)I", (void *)nativetest},
{ "nativePreview", "(IJLandroid/view/Surface;)I", (void *) nativePreview},
},
在JNI文件所属。定义。
static jint nativetest(JNIEnv *env, jobject thiz, jint myid)
{
// code..
}
static jint nativePreview(JNIEnv *env, jobject thiz, jint myid, jobject surface)
{
// code
}
对于本地注册我用
下面呼叫env->RegisterNatives(javaConsumerClass, methods, sizeof(methods)/sizeof(methods[0]));
问题:
有趣的是,具有接收下面的错误:
java.lang.NoSuchMethodError:没有静态或非静态方法“Lcom/fd/sample/First; .nativePreview(IJLandroid/view/Surface;)I”
我已经删除nativePreview()调用,注册成功完成。
问:
,我是用经过表面的方法正确的话,还是有什么,我都忽略了?请帮帮我。
谢谢迈克尔,我想通了。你是对的。再次感谢。 – DrunkenMaster