Android - StackOverflowError

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