Strong Root

 

 

WTF !!

 

이것 때문에 이틀을 꼬박 날렸다.

 

 

 

 

 

Bitmap bm = BitmapFactory.decodeFile(mPath, options);
cs

 

 

sd카드의 png 파일을 BitmapFactory.decodeFile()로 읽어오는 라인에서 저 skia가 자꾸 false를 리턴하는 바람에 bm에 자꾸 null이 들어갔다.

 

 

 

구글링하며 오만 방법을 다 적용해봤지만 먹히지 않았고,

 

결과적으로 아래의 방법으로 해결했다.

 

try {
    Thread.sleep(2000);
catch (InterruptedException e) {
    e.printStackTrace();
}
 
Bitmap bm = BitmapFactory.decodeFile(mPath, options);
cs

 

;;;볼수록 화가 난다

 

이틀을 꼬박 날린 문제가 Sleep으로 해결되다니.

 

 

 

구글링을 통해 파악한 나에게 가장 근접한 문제의 원인은,

 

Android가 skia라는 디코더를 사용하는데, 이 디코더가 몇몇 단점이 있어서 부하를 잘 견디지 못한다는 것이었다.

 

즉, 순간적으로 디코딩 작업량이 쌓여 과부하가 걸려 있을 때 디코더를 닫아버리고 false를 리턴한다는 것이다. (누구 맘대로?! ...)

 

 

 

 

 

여튼 skia 때문에 문제가 발생한다면 Sleep()을 사용해보시기 바랍니다 ^^;

 

Sleep 시간은 직접 테스팅하시면서 가장 좋은 시간으로 선택하시면 됩니다.

 

 

 

 

 

참고 : http://www.androidpub.com/1624795