마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

crop사용 후에 이미지 뷰가 갱신이 안되서 recycle()을 사용하면 오류

–1 추천
제가 만들려는게 사진을 찍고

사진 찍은게 보여지고 .. (프리뷰라고 하죠?) 그리고 설정창을 들어가면

아래에 여러 설정 버튼들이 있고 역시나 사진 찍은게 보여지는데 거기서

사진을 클릭하면 crop 액티비티를 불러서 자르기를 합니다..

그리고 자르기를 누르면 다시 설정창에 와서 자른 화면이 보여야 하는데..

갱신이 안되더군요.. 뒤로가기 한담에 다시 설정창 눌러서 하면 되구요.

그래서 recycle을 넣으면 널포인트 에러가 뜹니다 ㅠ

 

 public void onClick(View v) {
    // TODO Auto-generated method stub
    
    Intent intent = new Intent("com.android.camera.action.CROP");
    intent.setDataAndType(Uri.fromFile(File_224.file), "image/*");
    intent.putExtra("output", Uri.fromFile(File_224.file));
    startActivityForResult(intent, 2);
 
    String full_path = Uri.fromFile(File_224.file).getPath();
    String photo_path = full_path.substring(4, full_path.length());
   
        File_224.captureBmp = BitmapFactory.decodeFile(photo_path);
    
    File_224.captureBmp.recycle();
    //re=1;
   
  
   
   
   }
   
  });
  

리사이클에서 계속 널포인트 익셉션 발생하네요 ..

근데 막상 종료한다고 하고 실행은 잘 되네요.. 그래서

저 오류창을 안뜨게 하거나 아니면 근본적으로 고치고 싶은데 도움좀 부탁드립니다..
ㅁㄴㅇㄹㄴㄴ (110 포인트) 님이 2013년 6월 25일 질문

1개의 답변

0 추천

널포인트 입셉션은 객체가 없는 대상을 사용하려고 했기 때문에 나는겁니다.

File_224.captureBmp = BitmapFactory.decodeFile(photo_path);
File_224.captureBmp.recycle();

단순히 올려주신 코드로만 봤을때

File_224.captureBmp = null; 인데

File_224.captureBmp.recycle() 을 하려고 했기 때문에 나는거죠

File_224.captureBmp에 값을 할당하는 BitmapFactory.decodeFile(photo_path); 

위의 코드가 null 이라는 겁니다.

.recycle() 자체 때문에 생긴 에러는 아니라는 거죠.

차근차근 원인을 먼저 파악하시고 해결해 나가시기 바랍니다

Gradler (109,780 포인트) 님이 2013년 6월 25일 답변
...