jni:使用defineClass时的java.lang.AbstractMethodError;

时间:2016-10-31 17:01:05

标签: java c++ java-native-interface

我正在尝试使用jni(java native interface)在c ++中加载一个类。 一切正常,但是当使用env-> DefineClass时,它会抛出一个AbstractMethodError。知道怎么解决吗?

我的代码:

jbyteArray arr = (jbyteArray) env->GetObjectArrayElement(fullArr, i);

jsize dataSize = env->GetArrayLength(arr);
jbyte* data = env->GetByteArrayElements(arr, NULL);

env->DefineClass("Test", classLoader, data, dataSize); // classLoader is the given jobject from the native method.

env->ReleaseByteArrayElements(arr, data, JNI_ABORT);
env->DeleteLocalRef(arr);

错误:

Exception in thread "main" java.lang.AbstractMethodError: java.lang.ClassLoader.loadClass(Ljava/lang/String;)Ljava/lang/Class;

提前致谢! :)

0 个答案:

没有答案