java - ExceptionInInitializerError - service and library -
java - ExceptionInInitializerError - service and library -
i have unexpectedly encountered exceptioninintiialize error while trying run application. believe error prompted when users click on quick chat button.
10-09 18:27:08.450: e/androidruntime(999): fatal exception: main 10-09 18:27:08.450: e/androidruntime(999): java.lang.exceptionininitializererror 10-09 18:27:08.450: e/androidruntime(999): @ com.sinch.android.rtc.internal.client.servicefactory.createuseragent(servicefactory.java:44) 10-09 18:27:08.450: e/androidruntime(999): @ com.sinch.android.rtc.internal.client.defaultsinchclient.<init>(defaultsinchclient.java:157) 10-09 18:27:08.450: e/androidruntime(999): @ com.sinch.android.rtc.internal.client.internalsinchclientfactory.createsinchclient(internalsinchclientfactory.java:14) 10-09 18:27:08.450: e/androidruntime(999): @ com.sinch.android.rtc.defaultsinchclientbuilder.build(defaultsinchclientbuilder.java:95) 10-09 18:27:08.450: e/androidruntime(999): @ com.dooba.beta.messageservice.startsinchclient(messageservice.java:56) 10-09 18:27:08.450: e/androidruntime(999): @ com.dooba.beta.messageservice.onstartcommand(messageservice.java:40) 10-09 18:27:08.450: e/androidruntime(999): @ android.app.activitythread.handleserviceargs(activitythread.java:2490) 10-09 18:27:08.450: e/androidruntime(999): @ android.app.activitythread.access$1900(activitythread.java:130) 10-09 18:27:08.450: e/androidruntime(999): @ android.app.activitythread$h.handlemessage(activitythread.java:1292) 10-09 18:27:08.450: e/androidruntime(999): @ android.os.handler.dispatchmessage(handler.java:99) 10-09 18:27:08.450: e/androidruntime(999): @ android.os.looper.loop(looper.java:137) 10-09 18:27:08.450: e/androidruntime(999): @ android.app.activitythread.main(activitythread.java:4745) 10-09 18:27:08.450: e/androidruntime(999): @ java.lang.reflect.method.invokenative(native method) 10-09 18:27:08.450: e/androidruntime(999): @ java.lang.reflect.method.invoke(method.java:511) 10-09 18:27:08.450: e/androidruntime(999): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:786) 10-09 18:27:08.450: e/androidruntime(999): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:553) 10-09 18:27:08.450: e/androidruntime(999): @ dalvik.system.nativestart.main(native method) 10-09 18:27:08.450: e/androidruntime(999): caused by: java.lang.unsatisfiedlinkerror: couldn't load sinch-android-rtc: findlibrary returned null 10-09 18:27:08.450: e/androidruntime(999): @ java.lang.runtime.loadlibrary(runtime.java:365) 10-09 18:27:08.450: e/androidruntime(999): @ java.lang.system.loadlibrary(system.java:535) 10-09 18:27:08.450: e/androidruntime(999): @ com.sinch.android.rtc.internal.natives.jni.useragentfactory.<clinit>(useragentfactory.java:9)
below code: below code:
public class matchoptionactivity1 extends activity{ protected textview muserretrieved; private string currentuserid; protected textview museractivitynameretrieved; protected textview musernameretrieved; protected textview muserageretrieved; protected textview muserheadlineretrieved; string usergender = parseuser.getcurrentuser().getstring("gender"); string activityname = parseuser.getcurrentuser().getstring("activityname"); number maxdistance = parseuser.getcurrentuser().getnumber( "maximum_distance"); string userlookinggender = parseuser.getcurrentuser().getstring( "looking_gender"); number minimumage = parseuser.getcurrentuser().getnumber("minimum_age"); number maximumage = parseuser.getcurrentuser().getnumber("maximum_age"); number userage = parseuser.getcurrentuser().getnumber("userage"); private feedbackdialog feedback; private progressdialog progressdialog; private broadcastreceiver receiver; private messageservice.messageserviceinterface sinchservice; private boolean bound = false; private intent intent; private intent serviceintent; @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.matchoption); feedback = new feedbackdialog(this, "af-46d8f2a319ea-0a"); parsequery<parseuser> query = parseuser.getquery(); // query.whereequalto("activityname",useractivityselectionname); query.wherenotequalto("objectid", parseuser.getcurrentuser() .getobjectid()); // users gender = currentuser.looking_gender query.whereequalto("gender", userlookinggender); // users looking_gender = currentuser.gender query.whereequalto("looking_gender", usergender); query.setlimit(1); // query2.whereequalto("usermatchedrequest1", "confirmed"); query.whereequalto("activityname", activityname); query.wheregreaterthanorequalto("userage", minimumage); query.wherelessthanorequalto("userage", maximumage); parsequery<parseuser> query2 = parseuser.getquery(); // query.whereequalto("activityname",useractivityselectionname); query2.wherenotequalto("objectid", parseuser.getcurrentuser() .getobjectid()); // users gender = currentuser.looking_gender query2.whereequalto("gender", userlookinggender); // users looking_gender = currentuser.gender query2.whereequalto("looking_gender", usergender); query2.setlimit(1); // query2.whereequalto("usermatchedrequest1", "confirmed"); query2.whereequalto("activityname", activityname); query2.wheregreaterthanorequalto("userage", minimumage); query2.wherelessthanorequalto("userage", maximumage); query.findinbackground(new findcallback<parseuser>() { @override public void done(list<parseuser> objects,parseexception e) { for(int i=0;i<objects.size();i++){ // whatever need extract object "users" parsequery<parseobject> query = parsequery.getquery("user"); query.wherenotequalto("objectid", parseuser.getcurrentuser() .getobjectid()); // users gender = currentuser.looking_gender query.whereequalto("gender", userlookinggender); // users looking_gender = currentuser.gender query.whereequalto("looking_gender", usergender); query.setlimit(1); // query2.whereequalto("usermatchedrequest1", "confirmed"); query.whereequalto("activityname", activityname); query.wheregreaterthanorequalto("userage", minimumage); query.wherelessthanorequalto("userage", maximumage); musernameretrieved = (textview) findviewbyid(r.id.tvmname1); musernameretrieved.settext(objects.get(i).get("name").tostring()); } }//for loop }); query2.findinbackground(new findcallback<parseuser>() { @override public void done(list<parseuser> objects,parseexception e) { for(int i=0;i<objects.size();i++){ // whatever need extract object "users" parsequery<parseobject> query2 = parsequery.getquery("user"); query2.wherenotequalto("objectid", parseuser.getcurrentuser() .getobjectid()); // users gender = currentuser.looking_gender query2.whereequalto("gender", userlookinggender); // users looking_gender = currentuser.gender query2.whereequalto("looking_gender", usergender); query2.setlimit(1); // query2.whereequalto("usermatchedrequest1", "confirmed"); query2.whereequalto("activityname", activityname); query2.wheregreaterthanorequalto("userage", minimumage); query2.wherelessthanorequalto("userage", maximumage); parsefile image = objects.get(i).getparsefile("profilepicture"); parseimageview imageview = (parseimageview) findviewbyid(r.id.profilepictureresultm); // placeholder used before , during fetch, replaced fetched image // data. imageview.setplaceholder(getresources().getdrawable(r.drawable.profile_pict)); imageview.setparsefile(image); imageview.loadinbackground(new getdatacallback() { @override public void done(byte[] data, parseexception e) { if (data != null) { log.i("parseimageview", "fetched: " + data.length); } else { log.e("parseimageview", "error fetching: " + e.getmessage()); } } }); } }//for loop }); final button ichat = (button) this.findviewbyid(r.id.btnquickchat); ichat.setonclicklistener(new onclicklistener() { @override public void onclick(view v) { openconversation(); } private void openconversation() { // todo auto-generated method stub parsequery<parseuser> query = parseuser.getquery(); query.wherenotequalto("objectid", parseuser.getcurrentuser() .getobjectid()); // users gender = currentuser.looking_gender query.whereequalto("gender", userlookinggender); // users looking_gender = currentuser.gender query.whereequalto("looking_gender", usergender); query.setlimit(1); query.whereequalto("activityname", activityname); query.wheregreaterthanorequalto("userage", minimumage); query.wherelessthanorequalto("userage", maximumage); query.findinbackground(new findcallback<parseuser>() { public void done(list<parseuser> user, parseexception e) { if (e == null) { intent intent = new intent(getapplicationcontext(), messagingactivity1.class); startservice(serviceintent); intent.putextra("recipient_id", user.get(0).getobjectid()); startactivity(intent); } else { toast.maketext(getapplicationcontext(), "error finding user", toast.length_short).show(); } } }); } }); } //show loading spinner while sinch client starts private void showspinner() { progressdialog = new progressdialog(this); progressdialog.settitle("loading"); progressdialog.setmessage("please wait..."); progressdialog.show(); receiver = new broadcastreceiver() { @override public void onreceive(context context, intent intent) { boolean success = intent.getbooleanextra("success", false); progressdialog.dismiss(); if (!success) { toast.maketext(getapplicationcontext(), "messaging service failed start", toast.length_long).show(); } } }; localbroadcastmanager.getinstance(this).registerreceiver(receiver, new intentfilter("com.dooba.beta.matchoptionactivity1")); } @override public void onresume() { super.onresume(); } }
screens of library is
all best,
caused by: java.lang.unsatisfiedlinkerror: couldn't load sinch-android-rtc: findlibrary returned null
indicates sinch sdk unable find native binary required sdk work correctly. create sure have finish libs
folder copied sinch sdk , create sure of .so
files beingness included in final apk.
please note sinch sdk supports armeabi
, armeabi-v7a
@ moment, if trying run on x86
device not work.
java android android-layout android-activity parse.com
Comments
Post a Comment