-3

I am trying to make a app that opens camera and captured photo displays in my app main activity's ImageView. but app is crashing when I'm running the camera Intent.

here is my MainActivity.class

import android.content.Intent;
import android.graphics.Bitmap;
import android.provider.MediaStore;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

static final int REQUEST_IMAGE_CAPTURE=1;
public void capture(View v){
  MainActivity m=new MainActivity();
  m.captureImage();

}

public void captureImage(){
    Intent i=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    if(i.resolveActivity(getPackageManager())!=null){
        startActivityForResult(i,REQUEST_IMAGE_CAPTURE);
    }
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{
    if(requestCode==REQUEST_IMAGE_CAPTURE&&resultCode==RESULT_OK){
        Bundle extras=data.getExtras();
        Bitmap imageBitmap=(Bitmap) extras.get("data");
        ImageView iv=findViewById(R.id.myimage);
        iv.setImageBitmap(imageBitmap);
    }    }
}

any one out there to help will be thankful.

SriDatta Yalla
  • 766
  • 8
  • 13
  • You need to post more (stacktrace) information and you should scan SO [for the same kind of questions](https://stackoverflow.com/questions/34504717/android-app-crashes-on-onactivityresult-while-using-camera-intent). – Jeroen Heier Dec 10 '17 at 08:28

2 Answers2

0

You are creating new Instance of MainActivity, Ignore this use only.

static final int REQUEST_IMAGE_CAPTURE=1;
public void capture(View v){
   captureImage();
}

And Make Sure Camera Permission is added on Manifest.

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

And if working with Android M+ pleas check runtime camera permission is given.

Dipendra Sharma
  • 2,404
  • 2
  • 18
  • 35
0

you never ever create a instance of an Activity.

MainActivity m=new MainActivity();// Wrong

Intent is the API which allow that, to communicate between Android's Components . And about calling methods-> You are calling method in same class why you creating an object just call it . It will Call with current reference anyway .

public void capture(View v){
captureImage();
}
ADM
  • 20,406
  • 11
  • 52
  • 83