java - BringToFront Force Closes the application -
here code have problem here complete code
public class camerafragment extends fragment implements orientationlistener { private camera mcamera; private camerapreview mpreview; framelayout previewframelayout; private button camerabutton; private button cancelbutton; private button addbutton; private button retakebutton; private button donebutton; //coach mark variable private boolean cocahmarkvisible=true; private relativelayout coachmarktoplayout; private textview coachtext; private imageview arrowimage; private linearlayout camerapreviewcentertop; private linearlayout camerapreviewcenterbottom; private linearlayout camerabtnlayout; private linearlayout addsectionbtnlayout; private linearlayout receiptpreviewlayout; private imageview receiptpreviewimage; private textview receiptpreviewlabeltext; private textview camerapreviewlabeltext; private linearlayout keepflatlayout; private textview keepflattxt; private textview receiptedgeleft; private textview receiptedgeright; private linearlayout headerview; private textview headertextview; private boolean cameraflat = false; private boolean addsectiondisplayed = false; private boolean orientationlistenerenabled = true; private string lastimagefile; private list<string> imgpaths = new arraylist<string>(); private static int max_num_of_receipts = 5; @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { view view = inflater .inflate(r.layout.fragment_camera, container, false); //view view2 = inflater // .inflate(r.layout.camera_coachmark, container, false); return view; } @override public void onactivitycreated(bundle savedinstancestate) { super.onactivitycreated(savedinstancestate); setupviews(); //showinstructionsdialog(false); } private void setupviews() { relativelayout fragmentlayout = (relativelayout) getactivity().findviewbyid(r.id.camerafragmentlayout); imageutils.fixbackgroundrepeat(fragmentlayout); // create instance of camera mcamera = getcamerainstance(); setcameraparams(mcamera); // create our preview view , set content of our activity. mpreview = new camerapreview(getactivity(), mcamera); previewframelayout = (framelayout) getactivity().findviewbyid(r.id.camera_preview); previewframelayout.addview(mpreview); setview(); //coachmarktoplayout = (relativelayout)getactivity().findviewbyid(r.id.coach_mark_top_layout); //coachmarktoplayout.setvisibility(view.visible); //coachmarktoplayout.bringtofront(); //to start make receipt preview hided if(receiptpreviewlayout != null) { receiptpreviewlayout.setvisibility(view.gone); addsectionbtnlayout.setvisibility(view.gone); camerabtnlayout.setvisibility(view.visible); addsectiondisplayed = false; keepflatlayout.setvisibility(view.visible); keepflatlayout.bringtofront(); keepflattxt.settext(r.string.camera_keep_straight); keepflattxt.bringtofront(); if(cocahmarkvisible == true) { coachmarktoplayout.setvisibility(view.visible); coachmarktoplayout.bringtofront(); } } //coachmarktoplayout.bringtofront(); headerview = (linearlayout)getactivity().findviewbyid(r.id.message_header_layout_id); headertextview = (textview)headerview.findviewbyid(r.id.message_header_textview); if(networkhelper.isoffline(getactivity())) { enableheaderandfooter(r.string.offerslist_no_internet); } else { disableheaderandfooter(); } } protected void enableheaderandfooter(int msgid) { headerview.setvisibility(view.visible); headertextview.settext(msgid); headerview.bringtofront(); } protected void disableheaderandfooter() { headerview.setvisibility(view.gone); } private void setcameraparams(camera mcamerainstance) { if (mcamera == null) return; // set orientation mcamera.setdisplayorientation(90); // set camera parameters camera.parameters params = mcamera.getparameters(); // following supported android 4.0 /* * if (params.getmaxnummeteringareas() > 0){ // check metering * areas supported list<camera.area> meteringareas = new * arraylist<camera.area>(); * * rect arearect1 = new rect(-100, -100, 100, 100); // specify area * in center of image meteringareas.add(new camera.area(arearect1, * 600)); // set weight 60% rect arearect2 = new rect(800, -1000, * 1000, -800); // specify area in upper right of image * meteringareas.add(new camera.area(arearect2, 400)); // set weight * 40% params.setmeteringareas(meteringareas); } */ list<string> focusmodes = params.getsupportedfocusmodes(); if (focusmodes != null && focusmodes.contains(camera.parameters.focus_mode_auto)) { params.setfocusmode(camera.parameters.focus_mode_auto); } mcamera.setparameters(params); } private void cancelbuttonpress() { cancelbutton.setenabled(false); getactivity().finish(); } private void camerabuttonpress() { camerabutton.setenabled(false); // process if camera flat if (cameraflat) { orientationlistenerenabled = false; enableaquiringfocus(r.string.camera_acquire_focus); mcamera.autofocus(myautofocuscallback); } } private void afterpicturetaken() { try { if(mcamera != null) { mcamera.stoppreview(); } } catch(exception ex) { log.e(constant.cartperk_log_tag, "not able stop preview after picture taken"); } orientationlistenerenabled = true; keepflatlayout.setvisibility(view.gone); camerabtnlayout.setvisibility(view.gone); addsectionbtnlayout.setvisibility(view.visible); retakebutton.setenabled(true); addbutton.setenabled(true); donebutton.setenabled(true); addsectiondisplayed = true; if(this.imgpaths.size() >= max_num_of_receipts) { addbutton.setenabled(false); } //camerapreviewcentertop.setbackground(new colordrawable(r.color.camera_screen_bg_color)); camerapreviewcentertop.setbackgroundcolor(getresources().getcolor(r.color.camera_screen_bg_color)); } private void retakebuttonpress() { retakebutton.setenabled(false); addbutton.setenabled(false); donebutton.setenabled(false); addsectiondisplayed = false; // remove last stored path if (imgpaths.size() > 0) { imgpaths.remove(imgpaths.size() - 1); } //if there no images, remove receipt preview if(imgpaths.size() == 0) { receiptpreviewlayout.setvisibility(view.gone); } addsectionbtnlayout.setvisibility(view.gone); camerabtnlayout.setvisibility(view.visible); camerabutton.setenabled(true); orientationlistenerenabled = true; keepflatlayout.setvisibility(view.visible); camerapreviewlabeltext.settext(string.valueof(1 + imgpaths.size())); camerapreviewcentertop.setbackgroundcolor(getresources().getcolor(r.color.camera_screen_bg_semi_color)); mcamera.startpreview(); } private void addsectionbuttonpress() { retakebutton.setenabled(false); addbutton.setenabled(false); donebutton.setenabled(false); addsectiondisplayed = false; receiptpreviewlayout.setvisibility(view.visible); receiptpreviewlabeltext.settext(string.valueof(imgpaths.size())); // show portion of existing receipt // show image if (lastimagefile != null) { bitmap lastrcptbitmap = imageutils.createscaledrotatedgreyedimage(lastimagefile, getactivity(), 90f); bitmap croppedbitmap = imageutils.croppedimageforimageview(lastrcptbitmap); bitmap framewidthadjustedimage = imageutils.adjustframelayoutwidthwithzoom(croppedbitmap); receiptpreviewimage.setimagebitmap(framewidthadjustedimage); receiptpreviewimage.setscaletype(scaletype.fit_xy); } addsectionbtnlayout.setvisibility(view.gone); camerabtnlayout.setvisibility(view.visible); camerabutton.setenabled(true); orientationlistenerenabled = true; keepflatlayout.setvisibility(view.visible); camerapreviewlabeltext.settext(string.valueof(1 + imgpaths.size())); camerapreviewcentertop.setbackgroundcolor(getresources().getcolor(r.color.camera_screen_bg_semi_color)); // start preview mcamera.startpreview(); } private void donebuttonpress() { retakebutton.setenabled(false); addbutton.setenabled(false); donebutton.setenabled(false); orientationlistenerenabled = false; enableaquiringfocus(r.string.camera_process_receipts); submitpictures(); } public void onreceipthandlererror() { //keepflatlayout.setvisibility(view.visible); orientationlistenerenabled = true; retakebutton.setenabled(true); addbutton.setenabled(true); donebutton.setenabled(true); } public linearlayout getkeepflatlayout() { return this.keepflatlayout; } private void setview() { camerabutton = (button)getactivity().findviewbyid(r.id.btn_camera); cancelbutton = (button)getactivity().findviewbyid(r.id.btn_cancel); addbutton = (button)getactivity().findviewbyid(r.id.btn_add); retakebutton = (button)getactivity().findviewbyid(r.id.btn_retake); donebutton = (button)getactivity().findviewbyid(r.id.btn_done); camerapreviewcentertop = (linearlayout)getactivity().findviewbyid(r.id.camera_preview_center_top_area); camerapreviewcenterbottom = (linearlayout)getactivity().findviewbyid(r.id.camera_preview_center_bottom_area); camerabtnlayout = (linearlayout)getactivity().findviewbyid(r.id.btn_camera_layout); addsectionbtnlayout = (linearlayout)getactivity().findviewbyid(r.id.btn_add_section_layout); receiptpreviewlayout = (linearlayout)getactivity().findviewbyid(r.id.receipt_preview_area); receiptpreviewimage = (imageview)getactivity().findviewbyid(r.id.camera_receipt_image); receiptpreviewlabeltext = (textview)getactivity().findviewbyid(r.id.receipt_preview_label1); camerapreviewlabeltext = (textview)getactivity().findviewbyid(r.id.camera_preview_label1); keepflatlayout = (linearlayout)getactivity().findviewbyid(r.id.keep_flat_layout); keepflattxt = (textview)getactivity().findviewbyid(r.id.keep_flat_label); receiptedgeleft = (textview)getactivity().findviewbyid(r.id.camera_receipt_edge_label1); receiptedgeright = (textview)getactivity().findviewbyid(r.id.camera_receipt_edge_label2); coachmarktoplayout = (relativelayout)getactivity().findviewbyid(r.id.coach_mark_top_layout); coachtext = (textview)getactivity().findviewbyid(r.id.coach_mark_add_msg); arrowimage = (imageview)getactivity().findviewbyid(r.id.arrow_camera_msg); camerabutton.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { camerabuttonpress(); } }); cancelbutton.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { cancelbuttonpress(); } }); addbutton.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { addsectionbuttonpress(); } }); retakebutton.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { retakebuttonpress(); } }); donebutton.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { donebuttonpress(); } }); } private void submitpictures() { if(facebookhelper.isuserloggedin(getactivity().getapplicationcontext())) { receipthandler receipthandler = new receipthandler(this.imgpaths, this.getactivity().getapplicationcontext()); receipthandler.submitanduploadreceipt(); //show dialog message, receipt submission in background keepflatlayout.setvisibility(view.gone); showdialog(r.string.camera_receipt_in_background, true, null); } else { previewframelayout.removeview(mpreview); previewframelayout.setvisibility(view.invisible); intent intentlogin = new intent(getactivity(), loginactivity.class); intentlogin.addflags(intent.flag_activity_clear_top); intentlogin.putextra("after_login_step", constant.after_login_camera); startactivityforresult(intentlogin, constant.request_code_from_camera); } } @override public void onactivityresult(int requestcode, int resultcode, intent data) { log.d(constant.cartperk_log_tag, "=================requestcode==="+requestcode+"==========resultcode="+resultcode); super.onactivityresult(requestcode, resultcode, data); if(requestcode == constant.request_code_from_camera) { previewframelayout.removeview(mpreview); previewframelayout.setvisibility(view.invisible); if(resultcode == activity.result_ok) { log.d(constant.cartperk_log_tag, "========inside result_ok=========requestcode==="+requestcode+"==========resultcode="+resultcode); try { if(mcamera != null) { mcamera.stoppreview(); } } catch(exception ex) { log.e(constant.cartperk_log_tag, "not able stop preview after picture taken"); } receipthandler receipthandler = new receipthandler(this.imgpaths, this.getactivity().getapplicationcontext()); receipthandler.submitanduploadreceipt(); //show dialog message, receipt submission in background keepflatlayout.setvisibility(view.gone); //showdialog(r.string.camera_receipt_in_background, true, null); } else { log.d(constant.cartperk_log_tag, "========inside not result_ok=========requestcode==="+requestcode+"==========resultcode="+resultcode); try { if(mcamera != null) { mcamera.stoppreview(); } } catch(exception ex) { log.e(constant.cartperk_log_tag, "not able stop preview after picture taken"); } keepflatlayout.setvisibility(view.gone); //showdialog(r.string.camera_receipts_error, true, null); } } } private boolean checkcamerahardware(context context) { if (context.getpackagemanager().hassystemfeature( packagemanager.feature_camera)) { // device has camera return true; } else { // no camera on device return false; } } /** safe way instance of camera object. */ public static camera getcamerainstance() { camera c = null; try { c = camera.open(); // attempt camera instance } catch (exception e) { // camera not available (in use or not exist) } return c; // returns null if camera unavailable } private void releasecamera() { if (mcamera != null) { mcamera.release(); // release camera other applications mcamera = null; previewframelayout.removeview(mpreview); mpreview = null; } } private void resumecamera() { if (mcamera == null) { mcamera = getcamerainstance(); setcameraparams(mcamera); mpreview = new camerapreview(getactivity(), mcamera); previewframelayout.addview(mpreview); } } private void takepicture() { // image camera // mcamera.takepicture(null, null, mpicture); mcamera.takepicture(myshuttercallback, mypicturecallback_raw, mpicture); } autofocuscallback myautofocuscallback = new autofocuscallback() { @override public void onautofocus(boolean arg0, camera arg1) { // todo auto-generated method stub takepicture(); } }; shuttercallback myshuttercallback = new shuttercallback() { @override public void onshutter() { // todo auto-generated method stub } }; picturecallback mypicturecallback_raw = new picturecallback() { @override public void onpicturetaken(byte[] arg0, camera arg1) { // todo auto-generated method stub } }; private picturecallback mpicture = new picturecallback() { @override public void onpicturetaken(byte[] data, camera camera) { file picturefile = imagehelper.getoutputmediafile(imagehelper.media_type_image); if (picturefile == null) { log.d(constant.cartperk_log_tag, "error creating media file, check storage permissions: "); return; } try { fileoutputstream fos = new fileoutputstream(picturefile); fos.write(data); fos.close(); } catch (filenotfoundexception e) { log.d(constant.cartperk_log_tag, "file not found: " + e.getmessage()); } catch (ioexception e) { log.d(constant.cartperk_log_tag, "error accessing file: " + e.getmessage()); } log.d(constant.cartperk_log_tag, "==================mypicture======="); // mcamera.startpreview(); lastimagefile = picturefile.getabsolutepath(); imgpaths.add(lastimagefile); afterpicturetaken(); } }; /** create file uri saving image or video */ private static uri getoutputmediafileuri(int type) { return uri.fromfile(imagehelper.getoutputmediafile(type)); } private void enableaquiringfocus(int messageid) { keepflatlayout.setvisibility(view.visible); keepflattxt.settext(messageid); } private void disableaquiringfocus() { } public void onresume() { super.onresume(); //resumecamera resumecamera(); boolean isorientationsupported = orientationmanager.issupported(); //for testing //isorientationsupported = false; if (isorientationsupported) { orientationmanager.startlistening(this); } else { //mark flat cameraflat = true; //show same message keepflattxt.settext(r.string.camera_keep_straight); } } public void ondestroy() { super.ondestroy(); if (orientationmanager.islistening()) { orientationmanager.stoplistening(); } } @override public void onpause() { super.onpause(); releasecamera(); // release camera on pause event } @override public void onorientationchanged(float azimuth, float pitch, float roll) { // show actual values } @override public void onbottomup() { // toast.maketext(getactivity(), "bottom up", 1000).show(); } @override public void onleftup() { // toast.maketext(getactivity(), "left up", 1000).show(); } @override public void onrightup() { // toast.maketext(getactivity(), "right up", 1000).show(); } @override public void ontopup() { // toast.maketext(getactivity(), "top up", 1000).show(); } @override public void onnotflat() { cameraflat = false; if(orientationlistenerenabled) { camerabutton.setenabled(false); if (!addsectiondisplayed) { keepflattxt.settext(r.string.camera_keep_straight); keepflatlayout.bringtofront(); keepflattxt.bringtofront(); } } if(this.imgpaths.size() >= max_num_of_receipts) { } } @override public void onflat() { if(orientationlistenerenabled) { cameraflat = true; camerabutton.setenabled(true); keepflattxt.settext(r.string.camera_is_straight); keepflatlayout.bringtofront(); keepflattxt.bringtofront(); } if(this.imgpaths.size() >= max_num_of_receipts) { } } and logcat shown below if remove bringtofront line works fine
03-25 08:57:00.184: d/cartperk app(7910): ====offeritemmain==inside setoffermain====0=====oats idli 03-25 08:57:00.184: d/cartperk app(7910): =======inside offersgridview getview step4======0 03-25 08:57:00.184: d/cartperk app(7910): ==================inside loaddataforscrolldown============== 03-25 08:57:00.184: i/pontiflex sdk(7910): no storage file found 03-25 08:57:00.364: d/androidruntime(7910): shutting down vm 03-25 08:57:00.364: e/androidruntime(7910): fatal exception: main 03-25 08:57:00.364: e/androidruntime(7910): process: com.cartperk.android.cartperk, pid: 7910 03-25 08:57:00.364: e/androidruntime(7910): java.lang.runtimeexception: unable start activity componentinfo{com.cartperk.android.cartperk/com.cartperk.android.cartperk.ui.cameraactivity}: java.lang.nullpointerexception: attempt invoke virtual method 'void android.widget.relativelayout.setvisibility(int)' on null object reference 03-25 08:57:00.364: e/androidruntime(7910): @ android.app.activitythread.performlaunchactivity(activitythread.java:2195) 03-25 08:57:00.364: e/androidruntime(7910): @ android.app.activitythread.handlelaunchactivity(activitythread.java:2245) 03-25 08:57:00.364: e/androidruntime(7910): @ android.app.activitythread.access$800(activitythread.java:135) 03-25 08:57:00.364: e/androidruntime(7910): @ android.app.activitythread$h.handlemessage(activitythread.java:1196) 03-25 08:57:00.364: e/androidruntime(7910): @ android.os.handler.dispatchmessage(handler.java:102) 03-25 08:57:00.364: e/androidruntime(7910): @ android.os.looper.loop(looper.java:136) 03-25 08:57:00.364: e/androidruntime(7910): @ android.app.activitythread.main(activitythread.java:5017) 03-25 08:57:00.364: e/androidruntime(7910): @ java.lang.reflect.method.invoke(native method) 03-25 08:57:00.364: e/androidruntime(7910): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:779) 03-25 08:57:00.364: e/androidruntime(7910): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:595) 03-25 08:57:00.364: e/androidruntime(7910): caused by: java.lang.nullpointerexception: attempt invoke virtual method 'void android.widget.relativelayout.setvisibility(int)' on null object reference 03-25 08:57:00.364: e/androidruntime(7910): @ com.cartperk.android.cartperk.ui.camerafragment.setupviews(camerafragment.java:154) 03-25 08:57:00.364: e/androidruntime(7910): @ com.cartperk.android.cartperk.ui.camerafragment.onactivitycreated(camerafragment.java:115) 03-25 08:57:00.364: e/androidruntime(7910): @ android.support.v4.app.fragment.performactivitycreated(fragment.java:1508) 03-25 08:57:00.364: e/androidruntime(7910): @ android.support.v4.app.fragmentmanagerimpl.movetostate(fragmentmanager.java:947) 03-25 08:57:00.364: e/androidruntime(7910): @ android.support.v4.app.fragmentmanagerimpl.movetostate(fragmentmanager.java:1104) 03-25 08:57:00.364: e/androidruntime(7910): @ android.support.v4.app.fragmentmanagerimpl.movetostate(fragmentmanager.java:1086) 03-25 08:57:00.364: e/androidruntime(7910): @ android.support.v4.app.fragmentmanagerimpl.dispatchactivitycreated(fragmentmanager.java:1884) 03-25 08:57:00.364: e/androidruntime(7910): @ android.support.v4.app.fragmentactivity.onstart(fragmentactivity.java:566) 03-25 08:57:00.364: e/androidruntime(7910): @ android.app.instrumentation.callactivityonstart(instrumentation.java:1171) 03-25 08:57:00.364: e/androidruntime(7910): @ android.app.activity.performstart(activity.java:5241) 03-25 08:57:00.364: e/androidruntime(7910): @ android.app.activitythread.performlaunchactivity(activitythread.java:2168) 03-25 08:57:00.364: e/androidruntime(7910): ... 9 more as have marked line comment how can solve
so, looks may initializing coachmarktoplayout incorrectly. when initializing view, you're calling activity.findviewbyid, should using view bound fragment.
- initialize
coachmarktoplayoutinfragment.oncreateviewusingviewreturn - initialize
coachmarktoplayoutinfragment.onviewcreated- same above - initialize
coachmarktoplayoutcallingfragment.getviewinstead offragment.getactivity
Comments
Post a Comment