Android - StackOverflowError
最近遇到這個問題,但還未解決,因為沒有Android 4.0.4以下的手機可以使用 , (Ice Cream Sandwich)版本,
已經發生在許多的手機廠牌了,Sony、HTC、三星、LG, 目前遇到八隻至十隻左右遇這個問題,大多是4.0.4及4.0.3
是發現有兩篇文章介紹不錯,記錄一下,未來可嘗後做處理
Android使用ListView時出現StackOverflowError 產生的原因和解决方法
http://fanli7.net/a/bianchengyuyan/C__/20140212/469187.html
真的遇到StackOverflowError
http://www.jiangwenrou.com/%E7%9C%9F%E7%9A%84%E9%81%87%E5%88%B0stackoverflowerror.html
主要注意以下兩點
1) 多用RelativeLayout的各種布局屬性來完成布局,而避免過多使用嵌套layout來實現。
2) 占位或填充剩餘空間的元素多用View,避免使用layout等viewGroup。
什麼叫深度
第二篇連結也有說明
对于这个bug就是因为view嵌套太深而导致了,具体什么叫深呢?10层以上就可以叫做深了,到了15层就很有可能引发此bug。而对于安卓系统来说其UI线程的堆大小为:
- API 3 (Android 1.5) = 8KB
- API 4-10 (Android 1.6 - Android 2.3.7) = 12KB
- API 14-17 (Android 4.0 - Android 4.2.2) = 16KB