안녕하세요 ~
카메라 관련 앱을 제작하고 있는데요 카메라 사진을 /sdcard/에 저장하고 다른 activity 에서 사진을 불러오기를
구현하고 있는 중입니다. 우선 카메라를 저장하고 Intent 를 호출하는 CameraPreview 클래스 입니다.
String path = mRootPath + "/" + FileName; File file = new File(path); try { FileOutputStream fos = new FileOutputStream(file); fos.write(data); fos.flush(); fos.close(); } catch (Exception e) { Toast.makeText(mMainContext, "파일 저장 중 에러 발생 : " + e.getMessage(), 0).show(); return; } // 스캐닝 요청 Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE); Uri uri = Uri.parse("file://" + path); intent.setData(uri); sendBroadcast(intent); mLastPicture = path; //mSurface.mCamera.startPreview(); Log.d("HeeChan", "path : " + path); Intent new_intent = new Intent(CameraPreview.this, CameraLoadImg.class); new_intent.putExtra("path", path); Log.d("HeeChan", "Nae da "); startActivityForResult(new_intent, TAKEPIC);
다음으로는 이것을 받아 오기로한 CameraLoadImg.class 입니다.
class CameraLoadImg extends Activity{ public OpenCV opencv = new OpenCV(); public Intent intent; private String imagepath=""; ImageView IMGview; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); intent = this.getIntent(); imagepath = intent.getStringExtra("path"); Log.d("HeeChan", "imagepath : " + imagepath); IMGview = (ImageView)findViewById(R.id.imgview); setContentView(R.layout.cameraprocess); } public void LoadImg(String path){ Log.d("HeeChan", "LoadImg !!!!!!!!!!!"); BitmapFactory.Options opt = new BitmapFactory.Options(); opt.inSampleSize = 2; Bitmap bitmap = BitmapFactory.decodeFile(imagepath, opt); IMGview.setImageBitmap(bitmap);
위와 같은 식으로 받아 오게 작성 했는데요 ~ CameraLoadImg 클래스에는 아예 접근을 못하네요 ㅠ
아래는 로그캣입니다.
12-14 08:23:28.983: WARN/dalvikvm(1147): threadid=3: thread exiting with uncaught exception (group=0x4001b188)
12-14 08:23:28.983: ERROR/AndroidRuntime(1147): Uncaught handler: thread main exiting due to uncaught exception
12-14 08:23:29.013: ERROR/AndroidRuntime(1147): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.konan/com.konan.CameraLoadImg}: java.lang.IllegalAccessException: access to class not allowed
12-14 08:23:29.013: ERROR/AndroidRuntime(1147): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2417)
12-14 08:23:29.013: ERROR/AndroidRuntime(1147): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
12-14 08:23:29.013: ERROR/AndroidRuntime(1147): at android.app.ActivityThread.access$2200(ActivityThread.java:119)
12-14 08:23:29.013: ERROR/AndroidRuntime(1147): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
12-14 08:23:29.013: ERROR/AndroidRuntime(1147): at android.os.Handler.dispatchMessage(Handler.java:99)
12-14 08:23:29.013: ERROR/AndroidRuntime(1147): at android.os.Looper.loop(Looper.java:123)
12-14 08:23:29.013: ERROR/AndroidRuntime(1147): at android.app.ActivityThread.main(ActivityThread.java:4363)
12-14 08:23:29.013: ERROR/AndroidRuntime(1147): at java.lang.reflect.Method.invokeNative(Native Method)
12-14 08:23:29.013: ERROR/AndroidRuntime(1147): at java.lang.reflect.Method.invoke(Method.java:521)
12-14 08:23:29.013: ERROR/AndroidRuntime(1147): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
12-14 08:23:29.013: ERROR/AndroidRuntime(1147): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
12-14 08:23:29.013: ERROR/AndroidRuntime(1147): at dalvik.system.NativeStart.main(Native Method)
12-14 08:23:29.013: ERROR/AndroidRuntime(1147): Caused by: java.lang.IllegalAccessException: access to class not allowed
12-14 08:23:29.013: ERROR/AndroidRuntime(1147): at java.lang.Class.newInstanceImpl(Native Method)
12-14 08:23:29.013: ERROR/AndroidRuntime(1147): at java.lang.Class.newInstance(Class.java:1479)
12-14 08:23:29.013: ERROR/AndroidRuntime(1147): at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
12-14 08:23:29.013: ERROR/AndroidRuntime(1147): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2409)
12-14 08:23:29.013: ERROR/AndroidRuntime(1147): ... 11 more
뭐가 잘못되었는지 고수분들 좀 알려 주세요 ㅠ
1. Intent 호출에서 문제가 발생하였는가?
-->
CameraLoadImg의 모든 멤버 변수와 내부 함수를 주석처리 한 후에 호출이 되는지 확인한다.
2. Intent 호출이 된다면
--> onCreate를 타기 전에 죽었으므로
public
OpenCV opencv =
new
OpenCV(); -->
public
OpenCV opencv =
null로 하시고 onCreate 내부에서 초기화를 하셔서 확인을 하셔야 할 것 같습니다.