today task calling java method c routine.currently calling c routine java calling java method got fatal error
#a fatal error has been detected java runtime environment: # sigsegv (0xb) @ pc=0x00002b170bae1d66, pid=10052, tid=47378050390336 jre version: 7.0_21-b11 # java vm: java hotspot(tm) 64-bit server vm (23.21-b01 mixed mode linux-amd64 compressed oops) # problematic frame: # c [libhelloimpl.so+0xd66] process_message+0xdb #
my code calling java method
jniexport java_com_example_mail_mailprocessingengine_intializemtadequeuedaemon(jnienv *jnienv, jobject obj) { jclass mailprocessingclass; jmethodid callingmethod; jobjectarray applicationargs; jstring applicationarg0; mailprocessingclass = (*jnienv)->findclass(jnienv, "com/example/mail/mailprocessingengine"); printf("\nhelloworldclass-%d",mailprocessingclass); callingmethod = (*jnienv)->getstaticmethodid(jnienv,mailprocessingclass, "processmail", "(i)i"); printf("\nmainmethod-%d",callingmethod); if (callingmethod == 0) { printf("could not find method\n"); }else{ printf("find method"); } int issuccess = (*jnienv)->callstaticintmethod(jnienv, mailprocessingclass, callingmethod, 6); printf("issuccess - "+issuccess); }
and java class is
package com.example.mail; public class mailprocessingengine { public native void intializemtadequeuedaemon(); static { system.loadlibrary("mailerimpl"); } public static void main (string[] args) { mailprocessingengine mailprocessingengine = new mailprocessingengine(); mailprocessingengine.intializemtadequeuedaemon(); } public static int processmail(int mailid){ system.out.println("mailid :"+mailid); return 1; }
}
can tell me going wrong here . after can give call java method same reference of jni environment.
thanks, ashish panery
Comments
Post a Comment