프레임레이아웃을 캡쳐하기 위해 이렇게 선언해주었구요
private FrameLayout container;
container = (FrameLayout)findViewById(R.id.main_container);
화면 캡쳐 버튼 기능을 구성했습니다.
container.buildDrawingCache();
Bitmap captureView = container.getDrawingCache();
FileOutputStream fos;
Intent it3=getIntent();
String str_name=it3.getStringExtra("it3_name");
File fileRoute = null;
fileRoute = Environment.getExternalStorageDirectory();
try {
File path = new File(fileRoute+"/play");
if(!path.isDirectory()){
path.mkdirs();
}
fos = new FileOutputStream(fileRoute+"/play/-"+str_name+"-.jpeg");
captureView.compress(Bitmap.CompressFormat.JPEG, 100, fos); //843번째 줄
}catch (FileNotFoundException e) {
e.printStackTrace();
}
Toast.makeText(getApplicationContext(), "/sdcard/FaceOn으로 저장되었습니다.", Toast.LENGTH_LONG).show();
위에 소스가 현재 2.2 프로요 기종(모토로라디파이)에서는 잘됩니다.
그런데 ics 기기에서 (옵티머스 Ex) 테스트를 해봣는데 캡쳐버튼을 누르면 죽습니다.
로그캣을 봤는데 843번째 줄이 굵은 부분입니다.
저는 OS에 따른 외장메모리경로때문에죽는건 줄 알았는데 저기서 에러나면 경로랑은 상관없는거아닌가요?
비트맵 값이 널값이 납니다. 젤리빈에서만 그러는거 같은데 무슨현상인지 해결법도 잘 모르겠습니다.
2.2 프로요에서는 잘되구요. 뭔가 방법이 바껴서 안되는거 같습니다.
이 문제를 어떻게 해결해야 하나요?
06-16 16:48:48.390: E/AndroidRuntime(25620): FATAL EXCEPTION: main
06-16 16:48:48.390: E/AndroidRuntime(25620): java.lang.NullPointerException
06-16 16:48:48.390: E/AndroidRuntime(25620): at com.example.faceon.ResultActivity.onClick(ResultActivity.java:843)