android - Not able to capture image from camera getting NullPointerException -


using camera class, writing simple code capture image on press on button getting nullpointerexception

below code.

surfaceview msurfaceview; surfaceholder msurfaceholder; camera mcamera; imageview mbutton;  @suppresswarnings("deprecation") @override protected void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.main);      msurfaceview = (surfaceview) this.findviewbyid(r.id.cameraview);     msurfaceholder = msurfaceview.getholder();     msurfaceholder.settype(surfaceholder.surface_type_push_buffers);     msurfaceholder.addcallback(this);      msurfaceview.setfocusable(true);     msurfaceview.setfocusableintouchmode(true);     msurfaceview.setclickable(true);      mbutton = (imageview)findviewbyid(r.id.capture);     mbutton.setonclicklistener(this); }  @suppresswarnings("deprecation") @override public void surfacechanged(surfaceholder arg0, int arg1, int arg2, int arg3) {     mcamera.startpreview(); }  @suppresswarnings("deprecation") @override public void surfacecreated(surfaceholder holder) {     mcamera = camera.open();     try {         mcamera.setpreviewdisplay(holder);         camera.parameters mparameters = mcamera.getparameters();         if (this.getresources().getconfiguration().orientation !=                 configuration.orientation_landscape) {             mparameters.set("orientation", "portrait");             mcamera.setdisplayorientation(90);         } else {             mparameters.set("orientation", "landscape");             mcamera.setdisplayorientation(0);         }         mcamera.setparameters(mparameters);         mcamera.setpreviewdisplay(holder);     } catch (ioexception e) {         mcamera.release();     }     mcamera.startpreview(); }  @suppresswarnings("deprecation") @override public void surfacedestroyed(surfaceholder arg0) {     mcamera.stoppreview();     mcamera.release(); }  @suppresswarnings("deprecation") @override public void onpicturetaken(byte[] data, camera camera) {     try {         uri imagefileuri = this.getcontentresolver().insert(media.external_content_uri, new contentvalues());          outputstream imagefileos = getcontentresolver().openoutputstream(imagefileuri);         imagefileos.write(data);         imagefileos.flush();         imagefileos.close();     } catch (filenotfoundexception e) {         e.printstacktrace();     } catch (ioexception e) {         e.printstacktrace();     } catch (nullpointerexception e) {         e.printstacktrace();         toast.maketext(this, e.getmessage(), toast.length_long).show();      }     mcamera.startpreview(); }  @suppresswarnings("deprecation") @override public void onclick(view v) {     mcamera.takepicture(null, null, snapshot.this); } 

i getting nullpointerexeption here:

this.getcontentresolver().insert(media.external_content_uri, new contentvalues()); 

androidmanifest.xml below

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"     android:versioncode="1"     android:versionname="1.0" >      <uses-sdk         android:minsdkversion="8"         android:targetsdkversion="21" />      <uses-permission android:name="android.permission.camera" />     <uses-feature android:name="android.hardware.camera" />     <uses-feature android:name="android.hardware.camera.autofocus" />     <uses-permission android:name="android.permission.write_external_storage"/>      <application         android:allowbackup="true"         android:icon="@drawable/ic_launcher"         android:label="@string/app_name"         android:theme="@style/apptheme" >         <activity             android:name=".snapshot"             android:label="@string/app_name" >             <intent-filter>                 <action android:name="android.intent.action.main" />                  <category android:name="android.intent.category.launcher" />             </intent-filter>         </activity>     </application>  </manifest> 

below logcat shows error message

e/databaseutils(  718): java.lang.nullpointerexception: attempt invoke virtual method 'int java.lang.string.lastindexof(int)' on null object reference  e/databaseutils(  718):     @ com.android.providers.media.mediaprovider.insertfile(mediaprovider.java:3151)  e/databaseutils(  718):     @ com.android.providers.media.mediaprovider.insertinternal(mediaprovider.java:3543)  e/databaseutils(  718):     @ com.android.providers.media.mediaprovider.insert(mediaprovider.java:2959)  e/databaseutils(  718):     @ android.content.contentprovider$transport.insert(contentprovider.java:235)  e/databaseutils(  718):     @ android.content.contentprovidernative.ontransact(contentprovidernative.java:163)  e/databaseutils(  718):     @ android.os.binder.exectransact(binder.java:446)  w/system.err(11632): java.lang.nullpointerexception: attempt invoke virtual method 'int java.lang.string.lastindexof(int)' on null object reference  w/system.err(11632):    @ android.os.parcel.readexception(parcel.java:1546)  w/system.err(11632):    @ android.database.databaseutils.readexceptionfromparcel(databaseutils.java:185)  w/system.err(11632):    @ android.database.databaseutils.readexceptionfromparcel(databaseutils.java:137)  w/system.err(11632):    @ android.content.contentproviderproxy.insert(contentprovidernative.java:475)  w/system.err(11632):    @ android.content.contentresolver.insert(contentresolver.java:1207)  w/system.err(11632):    @ com.parashu.mycamera.snapshot.onpicturetaken(snapshot.java:87)  w/system.err(11632):    @ android.hardware.camera$eventhandler.handlemessage(camera.java:1094)  w/system.err(11632):    @ android.os.handler.dispatchmessage(handler.java:102)  w/system.err(11632):    @ android.os.looper.loop(looper.java:135)  w/system.err(11632):    @ android.app.activitythread.main(activitythread.java:5221)  w/system.err(11632):    @ java.lang.reflect.method.invoke(native method)  w/system.err(11632):    @ java.lang.reflect.method.invoke(method.java:372)  w/system.err(11632):    @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:899)  w/system.err(11632):    @ com.android.internal.os.zygoteinit.main(zygoteinit.java:694)  d/gdp     (11632): nullpointerexception  e/qcamerahwi(  189): android::status_t android::qcamerahardwareinterface::setpreviewwindow(preview_stream_ops_t*): bug, cannot handle new window in started state  e/mm-camera(  201): config_v2_proc_event_message_0: unsupported message id: 40  e/mm-camera(  201): config_msg_id_stop_ack: streamon_mask not clear. should not call pp_release_hw  d/qcamerahwi(  189): android::status_t android::qcamerahardwareinterface::startpreview():  start preview  i/qcamerahwi(  189): android::status_t android::qcamerahardwareinterface::startpreview2():setting zsl mode  e/mm-camera(  201): config_proc_camera_set_inform_startpreview  e/mm-camera(  201): config_update_stream_info storing stream parameters video inst 1 : width = 640, height 480, format = 1 inst_handle = 810081 cid = 0  e/mm-camera(  201): config_update_stream_info storing stream parameters video inst 3 : width = 640, height 480, format = 1 inst_handle = 830083 cid = 0  e/mm-camera(  201): config_update_stream_info storing stream parameters video inst 4 : width = 512, height 384, format = 1 inst_handle = 840084 cid = 0  e/mm-camera(  201): config_decide_vfe_outputs: ports used 3, op mode 1  e/mm-camera(  201): config_decide_vfe_outputs current mode 5 full size streaming : disabled  e/mm-camera(  201): config_decide_vfe_outputs: primary: 640x480, extra_pad: 0x0, fmt: 1, type: 1, path: 1  e/mm-camera(  201): config_decide_vfe_outputs: secondary: 640x480, extra_pad: 0x0, fmt: 1, type: 3, path: 4  e/mm-camera(  201): config_update_inst_handles updated inst handles 810081, 830083, 0, 0   e/mm-camera(  201): camif_client_set_params: camif has associated obj mask 0x1  e/mm-camera(  201): config_v2_camera_start_common camif_params_add_obj_id failed -1   e/mm-camera(  201): vfe_operation_config: format 3  e/mm-camera(  201): vfe_operation_config:vfe_op_mode=5  e/mm-libcamera2(  189): profile hal: first preview frame received: 1434375940.660242458  e/qcamerahwi_preview(  189): processpreviewframewithdisplay: buffer enqueued not locked  d/audio_hw_primary(  189): disable_audio_route: reset , update mixer path: low-latency-playback  d/audio_hw_primary(  189): disable_snd_device: snd_device(2: speaker) 

what doing wrong?

issue got solved. media.external_content_uri default imported android.provider.mediastore.audio.media; used below code, worked fine. getapplicationcontext().getcontentresolver().insert(mediastore.images.media.ext‌​e‌​rnal_content_uri, new contentvalues());


Comments

Popular posts from this blog

javascript - Google App Script ContentService downloadAsFile not working -

javascript - Function overwritting -

c# - Exception when attempting to modify Dictionary -