I have an imageview in this app, I am able to capture an image on clicking the imageview, but when I want to display that image on the imageview after capturing, the app is getting crashed. Tried some codes from internet, but the problem still persists. What is the problem? I cannot understand simply what is causing this.. :(
My code is below:
package com.example.newfragment;
import java.io.File;
import android.support.v4.app.Fragment;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.PixelFormat;
import android.hardware.Camera;
import android.hardware.Camera.Parameters;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
public class TextFragment extends Fragment implements OnClickListener {
TextView text,add;
private ImageView img;
Button b;
int value;
String mobile;
private static final int CAMERA_REQUEST = 1888;
Camera camera;
@Override
public View onCreateView(LayoutInflater inflater,ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.text_fragment, container, false);
add= (TextView)view.findViewById(R.id.address);
img= (ImageView)view.findViewById(R.id.img);
b= (Button)view.findViewById(R.id.b);
img.setOnClickListener(this);
b.setOnClickListener(this);
return view;
}
public void change(int txt, String txt1, String txt2 ){
add.setText(txt1 );
value = txt;
mobile = txt2;
}
@Override
public void onClick(View v) {
if(v.equals(img))
{
File file = new File(Environment.getExternalStorageDirectory(), "Frag_list");
file.mkdirs();
String path = Environment.getExternalStorageDirectory() +"/Frag_list/"+value+".jpg";
File file2= new File(path);
Uri outputFileUri = Uri.fromFile( file2 );
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );
intent.putExtra( MediaStore.EXTRA_OUTPUT, outputFileUri );
startActivityForResult( intent, CAMERA_REQUEST );
}
if(v.equals(b))
{
Uri number = Uri.parse("tel:" +mobile);
Intent callIntent = new Intent(Intent.ACTION_CALL, number);
startActivity(callIntent);
}
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAMERA_REQUEST && resultCode == Activity.RESULT_OK)
{
Bitmap photo = (Bitmap) data.getExtras().get("data");
img.setImageBitmap(photo);
}
}
}
And the error I am getting:
10-01 13:34:18.850: W/dalvikvm(7121): threadid=1: thread exiting with uncaught exception (group=0x416159a8)
10-01 13:34:18.873: E/AndroidRuntime(7121): FATAL EXCEPTION: main
10-01 13:34:18.873: E/AndroidRuntime(7121): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=198496, result=-1, data=null} to activity {com.example.newfragment/com.example.newfragment.MainActivity}: java.lang.NullPointerException
10-01 13:34:18.873: E/AndroidRuntime(7121): at android.app.ActivityThread.deliverResults(ActivityThread.java:3525)
10-01 13:34:18.873: E/AndroidRuntime(7121): at android.app.ActivityThread.handleSendResult(ActivityThread.java:3568)
10-01 13:34:18.873: E/AndroidRuntime(7121): at android.app.ActivityThread.access$1100(ActivityThread.java:162)
10-01 13:34:18.873: E/AndroidRuntime(7121): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1412)
10-01 13:34:18.873: E/AndroidRuntime(7121): at android.os.Handler.dispatchMessage(Handler.java:107)
10-01 13:34:18.873: E/AndroidRuntime(7121): at android.os.Looper.loop(Looper.java:194)
10-01 13:34:18.873: E/AndroidRuntime(7121): at android.app.ActivityThread.main(ActivityThread.java:5371)
10-01 13:34:18.873: E/AndroidRuntime(7121): at java.lang.reflect.Method.invokeNative(Native Method)
10-01 13:34:18.873: E/AndroidRuntime(7121): at java.lang.reflect.Method.invoke(Method.java:525)
10-01 13:34:18.873: E/AndroidRuntime(7121): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
10-01 13:34:18.873: E/AndroidRuntime(7121): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
10-01 13:34:18.873: E/AndroidRuntime(7121): at dalvik.system.NativeStart.main(Native Method)
10-01 13:34:18.873: E/AndroidRuntime(7121): Caused by: java.lang.NullPointerException
10-01 13:34:18.873: E/AndroidRuntime(7121): at com.example.newfragment.TextFragment.onActivityResult(TextFragment.java:118)
10-01 13:34:18.873: E/AndroidRuntime(7121): at android.support.v4.app.FragmentActivity.onActivityResult(FragmentActivity.java:153)
10-01 13:34:18.873: E/AndroidRuntime(7121): at android.app.Activity.dispatchActivityResult(Activity.java:5311)
10-01 13:34:18.873: E/AndroidRuntime(7121): at android.app.ActivityThread.deliverResults(ActivityThread.java:3521)
10-01 13:34:18.873: E/AndroidRuntime(7121): ... 11 more
10-01 13:34:20.822: I/Process(7121): Sending signal. PID: 7121 SIG: 9