안드로이드 개발 질문/답변
(글 수 45,052)
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
로 사진촬영 Activity를 실행시킨 다음
onActivityResult에서
Intent intent = new Intent("com.android.camera.action.CROP");
로 이미지에 필요한 부분만 사용자가 지정하여 저장하는 소스 입니다.
===============================================================
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(mImageCaptureUri, "image/*");
intent.putExtra("outputX", 90);
intent.putExtra("outputY", 90);
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
intent.putExtra("scale", true);
intent.putExtra("return-data", true);
startActivityForResult(intent, CROP_FROM_CAMERA);
================================================================
logcat은 다음과 같습니다.
================================================================
02-14 02:03:09.971: ERROR/AndroidRuntime(9985): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.cooliris.media/com.cooliris.media.CropImage}: java.lang.NullPointerException
02-14 02:03:09.971: ERROR/AndroidRuntime(9985): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
02-14 02:03:09.971: ERROR/AndroidRuntime(9985): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
02-14 02:03:09.971: ERROR/AndroidRuntime(9985): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
02-14 02:03:09.971: ERROR/AndroidRuntime(9985): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
02-14 02:03:09.971: ERROR/AndroidRuntime(9985): at android.os.Handler.dispatchMessage(Handler.java:99)
02-14 02:03:09.971: ERROR/AndroidRuntime(9985): at android.os.Looper.loop(Looper.java:123)
02-14 02:03:09.971: ERROR/AndroidRuntime(9985): at android.app.ActivityThread.main(ActivityThread.java:4627)
02-14 02:03:09.971: ERROR/AndroidRuntime(9985): at java.lang.reflect.Method.invokeNative(Native Method)
02-14 02:03:09.971: ERROR/AndroidRuntime(9985): at java.lang.reflect.Method.invoke(Method.java:521)
02-14 02:03:09.971: ERROR/AndroidRuntime(9985): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:871)
02-14 02:03:09.971: ERROR/AndroidRuntime(9985): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629)
02-14 02:03:09.971: ERROR/AndroidRuntime(9985): at dalvik.system.NativeStart.main(Native Method)
02-14 02:03:09.971: ERROR/AndroidRuntime(9985): Caused by: java.lang.NullPointerException
02-14 02:03:09.971: ERROR/AndroidRuntime(9985): at com.cooliris.media.CropImage.onCreate(CropImage.java:140)
02-14 02:03:09.971: ERROR/AndroidRuntime(9985): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
02-14 02:03:09.971: ERROR/AndroidRuntime(9985): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
=================================================================
이유를 모르겠어요.
어디가 잘못된 건지.......
알려주세요 ;ㅁ;
부탁드립니다~
로 사진촬영 Activity를 실행시킨 다음
onActivityResult에서
Intent intent = new Intent("com.android.camera.action.CROP");
로 이미지에 필요한 부분만 사용자가 지정하여 저장하는 소스 입니다.
===============================================================
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(mImageCaptureUri, "image/*");
intent.putExtra("outputX", 90);
intent.putExtra("outputY", 90);
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
intent.putExtra("scale", true);
intent.putExtra("return-data", true);
startActivityForResult(intent, CROP_FROM_CAMERA);
================================================================
logcat은 다음과 같습니다.
================================================================
02-14 02:03:09.971: ERROR/AndroidRuntime(9985): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.cooliris.media/com.cooliris.media.CropImage}: java.lang.NullPointerException
02-14 02:03:09.971: ERROR/AndroidRuntime(9985): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
02-14 02:03:09.971: ERROR/AndroidRuntime(9985): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
02-14 02:03:09.971: ERROR/AndroidRuntime(9985): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
02-14 02:03:09.971: ERROR/AndroidRuntime(9985): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
02-14 02:03:09.971: ERROR/AndroidRuntime(9985): at android.os.Handler.dispatchMessage(Handler.java:99)
02-14 02:03:09.971: ERROR/AndroidRuntime(9985): at android.os.Looper.loop(Looper.java:123)
02-14 02:03:09.971: ERROR/AndroidRuntime(9985): at android.app.ActivityThread.main(ActivityThread.java:4627)
02-14 02:03:09.971: ERROR/AndroidRuntime(9985): at java.lang.reflect.Method.invokeNative(Native Method)
02-14 02:03:09.971: ERROR/AndroidRuntime(9985): at java.lang.reflect.Method.invoke(Method.java:521)
02-14 02:03:09.971: ERROR/AndroidRuntime(9985): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:871)
02-14 02:03:09.971: ERROR/AndroidRuntime(9985): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629)
02-14 02:03:09.971: ERROR/AndroidRuntime(9985): at dalvik.system.NativeStart.main(Native Method)
02-14 02:03:09.971: ERROR/AndroidRuntime(9985): Caused by: java.lang.NullPointerException
02-14 02:03:09.971: ERROR/AndroidRuntime(9985): at com.cooliris.media.CropImage.onCreate(CropImage.java:140)
02-14 02:03:09.971: ERROR/AndroidRuntime(9985): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
02-14 02:03:09.971: ERROR/AndroidRuntime(9985): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
=================================================================
이유를 모르겠어요.
어디가 잘못된 건지.......
알려주세요 ;ㅁ;
부탁드립니다~




지난 질문이지만 이거때문에 몇시간 고생해서 답변올립니다. ㅠㅠ
화면 회전때문에 발생한 에러인데요. 카메라만 그런데요.
Activity 에 android:configChanges="orientation|keyboard" 속성을 추가해주면 됩니다.
화면 회전시 onCreate 메소스가 다시 호출되지 않습니다.