안녕하세요 ~
카메라 관련 앱을 제작하고 있는데요 카메라 사진을 /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를 타기 전에 죽었으므로
publicOpenCV opencv =newOpenCV(); -->publicOpenCV opencv =null로 하시고 onCreate 내부에서 초기화를 하셔서 확인을 하셔야 할 것 같습니다.