我正在尝试使用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;
提前致谢! :)