1.在开发UI界面进行了按钮按下实现背景图变化效果,引入自定义drawable/test.xml文件时出现问题;根据提示知道是栈越界的错误,网上搜索资料,了解到复杂layout嵌套过多会导致此问题,据资料解释:
android SDK中对该错误的出现的场景描述为:由于栈调用的层次太多,超过了虚拟器dalvik的最大限制(作为一个虚拟器参数,可定制)导致的。当程序编写错误导致无限递归调用时会触发,此外程序正确但是递归调用的层次过深也会触发。
经过测试我在单独程序中运行时没有问题,说明不是使用方法的错误,也说明不存在死循环的无限递归错误。观察该界面的集成情况,该界面在设计时,用了多次LinearLayout进行嵌套,而因为该界面复杂,原因定位为界面嵌套层次过深。
android SDK中对该错误的出现的场景描述为:由于栈调用的层次太多,超过了虚拟器dalvik的最大限制(作为一个虚拟器参数,可定制)导致的。当程序编写错误导致无限递归调用时会触发,此外程序正确但是递归调用的层次过深也会触发。
经过测试我在单独程序中运行时没有问题,说明不是使用方法的错误,也说明不存在死循环的无限递归错误。观察该界面的集成情况,该界面在设计时,用了多次LinearLayout进行嵌套,而因为该界面复杂,原因定位为界面嵌套层次过深。
2.解决:
解决嵌套过深的基本思路是在实现同样的效果的前提下减少界面的layout深度。资料说明减少layout嵌套深度可以解决,具体的方法有:
1) 多用RelativeLayout的各种布局属性来完成布局,而避免过多使用嵌套layout来实现。
2) 占位或填充剩余空间的元素多用View,避免使用layout等viewGroup。
总结下,从实际的数据来看,设计中layout嵌套深度超过10层,就应该考虑下优化了,否则就会出现java.lang.StackOverflowError的crash了。
总结下,从实际的数据来看,设计中layout嵌套深度超过10层,就应该考虑下优化了,否则就会出现java.lang.StackOverflowError的crash了。
相关推荐
解决java.lang.StackOverflowError
1. 首先,程序启动后, main() 方法入栈 2. 然后, a() 方法入栈,变量 x 被声明为 int 类型,初始化赋值为 0 3. 接着, b() 方
如果某个线程的线程栈空间被耗尽,没有足够资源分配给新创建的栈帧,就会抛出 java.lang.StackOverflowError 错误。 线程栈是如何运行的? 首先给出一个简单的程序调用代码示例,如下所示: public class...
去除死循环,解决StackOverflowError错误
stackoverflow问题汇编_android Kindle阅读器格式,阅读时需下载相应阅读器
主要介绍了 Java中内存异常StackOverflowError与OutOfMemoryError详解的相关资料,需要的朋友可以参考下
stackoverflow-Java-top-qa 对stackoverflow上Java相关、投票数TOP100的问答进行翻译,欢迎点star,我们会持续更新!!! 为了让“翻译”更有意义,给阅读者带来更多、更有效的收获,我们会有一些加工: 例如,对问题...
帮助Android开发者,让项目在崩溃时从异常堆栈中,自动寻找Stack Overflow的回答
Stackoverflow核心工程师Marco Cecconi分享其架构设计和开发内幕,为什么他们不用单元测试!每天发布5次!最繁忙的实时消息服务用了25台服务器,每台负载不超过10%。
在Controller返回JSON数据到前端的时候 出现了这个StackOverflowError的错误 即 在将对象转换为JSON格式的数据的时候出现了无限递归调用的情况 如下: org.springframework....
hibernate中manytomany关系 实体类中有个集合方的是这个实体类本身
Android开发相关的网址导航 (排名顺序不分先后) 希望有其它好资源的小伙伴帮忙一起分享一下~ (喜欢的话就fork,顺便请右上角点个star哈~) 资源文档 技术社区 技术教程 开源代码 大神博客 开发框架 技术资讯 开发服务...
AndroidFAQSolutions(Android开发各类常见错误解决方案) 本文属于个人平时项目开发过程遇到的一些问题,记录下来并总结解决方案,希望能帮到大家解决问题,有些问题的解决方案是在StackoverFlow上找到的,建议大家...
django-stackoverflow-trace, Django 错误页w/a 搜索链接 django-stackoverflow-trace自定义 Django 技术错误模板,将相关stackoverflow搜索链接置于异常消息下。安装$ (sudo) pip install django_stackoverflo
这是一款可以在项目崩溃时获取异常,自动联网在Stack Overflow,百度或其他平台上寻找回答链接和详情
tomcat内存溢出解决办法,错误信息:java.lang.OutOfMemoryError:PermGen space 参考该文档可快速解决内存溢出的问题,服务器:tomcat
StackOverflow 创始人推荐图书
无法反编译出java源码 stackoverflow 上 Android 开发 500 问 stackoverflow ...高票问题翻译整理,下面中文标题的问题意味着翻译完或翻译中,如果你有意翻译可选择其它英文标题的问题进行翻译,其它问题猛戳。
loader-android 在 StackOverflow 上, 使用的示例项目。
我从几篇博客中截到的关于stackoverflow搭建技术资料,里面图文并茂,相信对想了解stackoverflow基本架构的IT伙伴们会有启发