[android] Activity 호출시 발생하는 !!! FAILED BINDER TRANSACTION !!! 해결법
Activity 호출시 발생하는 !!! FAILED BINDER TRANSACTION !!! 해결법.
- startActivity 나 startActivityForResult 를 통해서 activity 를 실행시킬 때, 간혹가다 다음과 같은 결과를 볼 수 있습니다.
E/JavaBinder(199): !!! FAILED BINDER TRANSACTION !!!
- 저는 Gallery 로부터 Crop 된 이미지를 가져오는 데 이런 에러가 발생하며, 해당 앱의 프로세스가 미친듯이 늘어나는 현상을 겪었습니다.
원인
- android 에서는 intent 를 통해 전달할 수 있는 데이터 양이 100KB 로 제한되어 있습니다.
- 저는 Gallery 로부터 큰 이미지를 가져와서 100KB 를 넘겨서 발생한 문제로 보입니다. ( result 로 전달되는 intent의 사이즈가 100KB 가 넘어버린 것이죠. )
해결책
- 원인을 알았으니 당연히 intent 로 전달되는 데이터 양을 100KB 이하로 줄이면 됩니다.
- Gallery 로부터 이미지를 가져오는 경우에는 아래와 같이 output 의 크기를 작게 해주면 해결됩니다
intent.putExtra( "outputX", 100 );
intent.putExtra( "outputY", 100 );