Android crash when attempting to take picture -


trying create android app. it's going second activity , return on clicking return button. want able take picture in second activity. when click button app crashes.

package com.example.gary.natureall;  import android.content.intent; import android.content.pm.packagemanager; import android.graphics.bitmap; import android.media.image; import android.os.bundle; import android.provider.mediastore; import android.support.v7.app.appcompatactivity; import android.view.view; import android.widget.imageview; import android.widget.textview;  import java.io.ioexception;   public class uploadpicscreen extends appcompatactivity {     imageview ivcamera, ivupload, ivgallery, ivimage;      static final int request_image_capture = 144;     @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.upload_picture_layout);         intent activitythatcalled = getintent();         string previousactivity = activitythatcalled.getextras().getstring("callingactivity");         textview callingactivitymessage = (textview) findviewbyid(r.id.calling_activity_info_text_view);         callingactivitymessage.append(" "+ previousactivity);         imageview ivcamera = (imageview) findviewbyid(r.id.ivcamera);         ivimage = (imageview) findviewbyid(r.id.ivimage);  if(! hascamera())     ivcamera.setenabled(false);     } //check if device has camera     private boolean hascamera(){         return getpackagemanager().hassystemfeature(packagemanager.feature_camera_any);     } //launch camera     public void launchcamera(view view){         intent intent = new intent(mediastore.action_image_capture);         //take picture , pass result onactivityresult         startactivityforresult(intent, request_image_capture);      }      //if want return image captured       @override     protected void onactivityresult(int requestcode, int resultcode, intent data) {         if (requestcode == request_image_capture && resultcode == result_ok){             //get photo             bundle extras = data.getextras();             bitmap photo = (bitmap) extras.get("data");             ivimage.setimagebitmap(photo);          }     }      public void onreturnbtnclick(view view) {         intent goingback = new intent();         setresult(result_ok, goingback);         finish();     } } 

here error message.

07-25 20:56:53.451 9055-9055/com.example.gary.natureall e/androidruntime: fatal exception: main                                                                           process: com.example.gary.natureall, pid: 9055                                                                           java.lang.illegalstateexception: not execute method android:onclick                                                                               @ android.support.v7.app.appcompatviewinflater$declaredonclicklistener.onclick(appcompatviewinflater.java:293)                                                                               @ android.view.view.performclick(view.java:5698)                                                                               @ android.widget.textview.performclick(textview.java:10846)                                                                               @ android.view.view$performclick.run(view.java:22565)                                                                               @ android.os.handler.handlecallback(handler.java:739)                                                                               @ android.os.handler.dispatchmessage(handler.java:95)                                                                               @ android.os.looper.loop(looper.java:158)                                                                               @ android.app.activitythread.main(activitythread.java:7230)                                                                               @ java.lang.reflect.method.invoke(native method)                                                                               @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:1230)                                                                               @ com.android.internal.os.zygoteinit.main(zygoteinit.java:1120)                                                                            caused by: java.lang.reflect.invocationtargetexception                                                                               @ java.lang.reflect.method.invoke(native method)                                                                               @ android.support.v7.app.appcompatviewinflater$declaredonclicklistener.onclick(appcompatviewinflater.java:288)                                                                               @ android.view.view.performclick(view.java:5698)                                                                                @ android.widget.textview.performclick(textview.java:10846)                                                                                @ android.view.view$performclick.run(view.java:22565)                                                                                @ android.os.handler.handlecallback(handler.java:739)                                                                                @ android.os.handler.dispatchmessage(handler.java:95)                                                                                @ android.os.looper.loop(looper.java:158)                                                                                @ android.app.activitythread.main(activitythread.java:7230)                                                                                @ java.lang.reflect.method.invoke(native method)                                                                                @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:1230)                                                                                @ com.android.internal.os.zygoteinit.main(zygoteinit.java:1120)                                                                             caused by: java.lang.securityexception: permission denial: starting intent { act=android.media.action.image_capture cmp=com.sec.android.app.camera/.camera } processrecord{3ef341 9055:com.example.gary.natureall/u0a10} (pid=9055, uid=10010) revoked permission android.permission.camera                                                                               @ android.os.parcel.readexception(parcel.java:1620)                                                                               @ android.os.parcel.readexception(parcel.java:1573)                                                                               @ android.app.activitymanagerproxy.startactivity(activitymanagernative.java:3130)                                                                               @ android.app.instrumentation.execstartactivity(instrumentation.java:1541)                                                                               @ android.app.activity.startactivityforresult(activity.java:4284)                                                                               @ android.support.v4.app.basefragmentactivityjb.startactivityforresult(basefragmentactivityjb.java:48)                                                                               @ android.support.v4.app.fragmentactivity.startactivityforresult(fragmentactivity.java:75)                                                                               @ android.app.activity.startactivityforresult(activity.java:4231)                                                                               @ android.support.v4.app.fragmentactivity.startactivityforresult(fragmentactivity.java:871)                                                                               @ com.example.gary.natureall.uploadpicscreen.launchcamera(uploadpicscreen.java:48)                                                                               @ java.lang.reflect.method.invoke(native method)                                                                                @ android.support.v7.app.appcompatviewinflater$declaredonclicklistener.onclick(appcompatviewinflater.java:288)                                                                                @ android.view.view.performclick(view.java:5698)                                                                                @ android.widget.textview.performclick(textview.java:10846)                                                                                @ android.view.view$performclick.run(view.java:22565)                                                                                @ android.os.handler.handlecallback(handler.java:739)                                                                                @ android.os.handler.dispatchmessage(handler.java:95)                                                                                @ android.os.looper.loop(looper.java:158)                                                                                @ android.app.activitythread.main(activitythread.java:7230)                                                                                @ java.lang.reflect.method.invoke(native method)                                                                                @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:1230)                                                                                   @ com.android.internal.os.zygoteinit.main(zygoteinit.java:1120)  

it looks permission problem. relevant part of stack trace is:

java.lang.securityexception: permission denial: starting intent { act=android.media.action.image_capture cmp=com.sec.android.app.camera/.camera } processrecord{3ef341 9055:com.example.gary.natureall/u0a10} (pid=9055, uid=10010) revoked permission android.permission.camera

you'll have add

<uses-permission android:name="android.permission.camera" /> 

to manifest, , android 6.0, have handle permission @ runtime - see app crashes due java.lang.securityexception example


Comments

Popular posts from this blog

jOOQ update returning clause with Oracle -

java - Warning equals/hashCode on @Data annotation lombok with inheritance -

java - BasicPathUsageException: Cannot join to attribute of basic type -