0
我需要在我的本機代碼中創建一個Java類的實例。要做到這一點,我用下面的C代碼:從JNI實例化Java類
jobject Java_com_mypackage__myClass_myMethod(JNIEnv* env, jobject thiz, jint index){
int fd = pDevs[index].ufds.fd; // fd = open(....); it's a input/eventX file.
jclass class = (*env)->FindClass(env,"com/mypackage/ClassName");
jmethodID mid = (*env)->GetMethodID(env,class,"<init>","(Ljava/lang/String;)V");
return (*env)->NewObject(env,class,mid,(*env)->NewStringUTF(env, pDevs[index].device_path));
}
但是當我調用myMethod的,我不斷收到致命的信號11(SIGSEGV)。代碼是否錯誤?
您的系統日誌可能包含重要的信息,例如,信號發出的功能。另外,你應該檢查你所做的JNI調用的返回值:不是'class' ** NULL **?是不是'中**'**空**? –