12-05 15:46:57.777: E/AndroidRuntime(5767): Caused by: java.lang.NullPointerException
12-05 15:46:57.777: E/AndroidRuntime(5767): at com.android.oneshot.CropActivity1.onActivityResult(CropActivity1.java:68)
12-05 15:46:57.777: E/AndroidRuntime(5767): at android.app.Activity.dispatchActivityResult(Activity.java:3908)
12-05 15:46:57.777: E/AndroidRuntime(5767): at android.app.ActivityThread.deliverResults(ActivityThread.java:2532)
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
doTakeAlbumAction();
// 다른액티비티에서 버튼누르면 넘어오는거라 바로 갤러리 연동되게 시작합니다.
}
//앨범호출
private void doTakeAlbumAction()
{
Intent intent1 = new Intent(Intent.ACTION_PICK);
intent1.setType(android.provider.MediaStore.Images.Media.CONTENT_TYPE);
startActivityForResult(intent1, PICK_FROM_ALBUM);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if(resultCode != RESULT_OK)
{
return;
}
switch(requestCode)
{
case CROP_FROM_CAMERA:
{
// 크롭이 된 이후의 이미지를 넘겨 받습니다.
final Bundle extras = data.getExtras();
if(extras != null)
{
Bitmap photo = extras.getParcelable("data");
mPhotoImageView_1.setImageBitmap(photo);
MediaStore.Images.Media.insertImage(getContentResolver(), photo, "title", "descripton");
IntentFilter intentFilter = new IntentFilter(Intent.ACTION_MEDIA_SCANNER_STARTED);
intentFilter.addAction(Intent.ACTION_MEDIA_SCANNER_FINISHED);
intentFilter.addDataScheme("file");
registerReceiver(mReceiver, intentFilter);
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"
+ Environment.getExternalStorageDirectory())));
}
// 임시 파일 삭제
File f = new File(mImageCaptureUri_1.getPath());
if(f.exists())
{
f.delete();
}
break;
}
case PICK_FROM_ALBUM:
{
mImageCaptureUri_1 = data.getData();
Intent intent_1 = new Intent("com.android.camera.action.CROP");
intent_1.setDataAndType(mImageCaptureUri_1, "image/*");
intent_1.putExtra("outputX", mImageCaptureUri_1);
intent_1.putExtra("outputY", mImageCaptureUri_1);
intent_1.putExtra("aspectX", 1);
intent_1.putExtra("aspectY", 2.2);
intent_1.putExtra("scale", false);
intent_1.putExtra("return-data", true);
startActivityForResult(intent_1, CROP_FROM_CAMERA);
break;
}
}
//setResult(RESULT_OK, data);
//finish();
}로그캣에러 클릭해서 에러뜬다는 부분은 33번째 줄(mPhotoImageView_1.setImageBitmap(photo);)입니다.
갤러리에서 사진 불러와서 크롭하고 저장하려고 하는데 크롭하고 저장을 누르면 강제종료가 되네요
저장은 됐다안됐다 하구요..ㅠㅠㅠ
왜 강제종료 되는지.. 그리고 마지막부분에 setResult 랑 finish는 써야하는지 지워야하는지도 좀 알려주세요ㅜㅜ
소스만 봐서는 mPhotoImageView_1 이 문제없이 잡혀 있는지도 모르겠구요..
Bitmap photo = extras.getParcelable("data"); 이부분에서 data란걸 못 불러 올수도 있네요
mPhotoImageView_1 이걸 잡아준 소스가 다른 엑티(클래스)라면 static 처리를 해 주고 다른 엑티에서 처리를 해 줘야 할거 같은데요?
아니면...여기서 셋이미지비트멥을 하지 마시구요 photo 값을 인텐트로 다른 액티로 넘겨서 처리하는 것도 좋을거 같습니다;
결론은.... 널익셉션오류는.... 직접 안보고는 해결이 안되요....




에러 종류가 NullPointerException 이란 뜻입니다. 그말은 photo가 null 이란 뜻이겠죠?