잘 돌아가던 앱이 기능 몇가지 추가하고 나서 비정상적으로 종료되는 현상이 생겼다.
종료되는 시점이 매번 다르고 디버깅에서도 잡을수가 없었다.
로그캣에는 A/libc Fatal signal 11 (SIGSEGV) 와 같은 에러를 뿜으면서 그냥 종료되어 버렸다.
폭풍검색.. 으로 몇가지 팁을 찾았는데. 아래 두가지 옵션을 추가해주고 종료되는 현상이 사라졌다..
android:allowClearUserData="true"
android:hardwareAccelerated="false"
Manifest 파일의 Application 태그 안에 넣어준다.
<application
android:name="MainApplication"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:allowClearUserData="true"
android:hardwareAccelerated="false" >
[ 2014.02.16 추가... ]
웹뷰를 지속적으로 사용하면서.. 폰에 따라 특이한 에러 메시지가 발견된다.
E/TileRenderer(1975): glEndTilingQCOM: 0x502
위와 같은 메시지인데... 베가아이언으로 테스트하면서 위 오류메시지가 주르르륵 떠서 다른 로그를 보기가 너무 어려웠다.
특히나 위 오류 때문인지 모르겠으나 가끔 signal 11 발생시키고 그냥 종료되는 현상 발생.. ㅠ.ㅠ
구글링 하면서 아래와 같은 해결책을 찾았다.
1) 메모리 문제이므로 heap 사이즈를 늘려준다.
manifest 파일의 application 섹션에 android:largeHeap="true" 옵션 추가
2) 하드웨어 가속 안하기 (Disable Hardware Acceleration)
webview.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
단, 이 속성은 SDK 11 이상에서만 사용 가능한 옵션이다.
테스트는 좀 더 해봐야 겠다.
액션바 스타일 쉽게 변경하기 (0) | 2014.10.06 |
---|---|
[webview] 사용자가 웹뷰에서 클릭한 정보 얻어오기 (0) | 2014.09.14 |
GCM(푸쉬) 전송 후 결과 메시지 분석하기 (0) | 2014.05.08 |
[TIP] ImageView 의 setImageURI 에서 OOM(OutOfMemory) 에러발생시. (0) | 2013.07.10 |
이용내역 모니터링 (0) | 2013.06.07 |