资讯专栏INFORMATION COLUMN

Eclipse启动后报“Decoration Calculation”并异常崩溃问题分析及解决办法

fireflow / 1852人阅读

摘要:第二次出现问题更不幸的是,后面有一次导入公司新的工程,也出现同样的问题了。三解决办法因为问题解决的过程却是有点曲折心酸,所以前面的问题分析有点长,简要说明一下解决办法,具体如下确认的导入识别情况。

一、问题现象

我像往常一样导入ClearCase(类似SVN)中导入公司新的工程进行开发,导入后没多久Eclipse就开始弹框报错,报错截图如下:

这时,你可以选择关闭对话框,但是紧接着Eclipse会弹出新的对话框(大概意思是软件运行出错,需要马上关闭Eclipse)。当然你仍然可以关闭该对话框,可是很快你会发现系统有些卡顿,打开后台任务管理器,你会发现物理内存基本耗尽。再查看进程,你会发现一个名为javaw.exe的进程内存占用贼高,而且还在持续增长。

二、问题分析 1、第一次出现问题

从报错的内容来看,“Decoration Calculation”(装饰的计算)通过中文翻译的字面意思是没法明白,查了半天资料也没搞明白是什么模块的问题,但网上出现报错并提供解决办法的人不在少数,贴几个出来。
1、Eclipse:An internal error occurred during: "Build Project". GC overhead limit exceeded
2、(Eclipse) An internal error occurred during: “Decoration Calculation”. java.lang.StackOverflowError in Ubuntu 14.10
3、解决An internal error occurred during: “Decoration Calculation”

问题矛头基本指向Java虚拟机内存设置过低(另一个报错内容“Java heap space”也说明可能存在此问题),建议基本都是修改Eclipse.ini配置文件,调高JVM的可用内存,满心欢喜的以为就此问题可以解决,不好意思,无论你重启多少次Eclipse,再把项目重新多导入多少次,问题仍然存在。

一开始我还以为是可用内存设置太小了,不断把值调大,后面索性调到1024m,Eclipse直接就启动不了,然后弹出一个提示框,大概意思就是这值你设置得太随性,乖乖改回去(开个玩笑:)),反正意思就是这个值不能随便设置,我调到临界的700m多样子,还是不行。

这样来来回回折腾了两天,后面我就果断放弃,静下来想想。做得第一件事就是先Close Project,很快发现Eclipse好了,基本可以排除Eclipse的问题,但是我导入的项目哪出问题了呢?重点是其他同事导入都没问题...

再和同事的Eclipse界面反复对比,发现一个细节,导入项目的图标不相同,他的是(Web项目),而我的是(Java项目)。一问同事,这个项目是Web工程,瞬间有种泪崩的感觉,要是早知道这点该多好...

基本确定是导入的问题了,那么我就开始反复的删除再导入,试了那么N次后就成功了(运气够背,人够衰),问题总算解决了。当然,还有一个比较暴力的解决办法(不推荐),就是手动把Java项目改成Web项目(网上教程很多,就不列举出来了)。

2、第二次出现问题

更不幸的是,后面有一次导入公司新的Java工程,也出现同样的问题了。更悲催的是,上次导入的Web项目又莫名其妙地识别成了Java项目,这问题没完没了...

后面想想,好像都是因为从ClearCase(类似SVN)导入引起的,于是我就把两个项目都先删除,然后通过import手动导入(Existing Projects into Workspace)。静静地等上几分钟,发现Eclipse依然安静地躺在那里,不哭不闹,看来问题是解决了!

后面再回想,ClearCase(类似SVN)和原生Eclipse的兼容性估计也是一个问题。为什么这么说呢?ClearCase是Rational公司给我们定做的,另外Eclipse也是一个定制的版本(暂简称VEclipse),用VEclipse从ClearCase导入工程没有问题。由于工作原因,我需要临时用原生Eclipse从ClearCase导入工程,才出现哪些问题,不过还好问题都暂时解决了。

三、解决办法

因为问题解决的过程却是有点曲折心酸,所以前面的问题分析有点长,简要说明一下解决办法,具体如下:

1、确认Eclipse的导入识别情况。先确认导入工程是Web项目还是Java项目,然后导入后观察图标(/)是否正确;

2、删除再导入尝试。确认识别正确,仍然出现问题,尝试将项目从Eclipse删除(不要同时勾选从本地硬盘删除),然后再导入,反复试三四次不行,就不用再试了;

3、import手动导入项目。如果你的工程使用SVN管理的,不要使用“import-Checkout Projects from SVN-从SVN库中导入”的方式,而是用“import-Existing Projects into Workspace-选择项目本地路径”的方式;

如果以上方式仍未能解决你的问题,请反馈出来并提供现象说明。或者你解决的,也请你留言分享出来。:)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/66393.html

相关文章

  • TestBird 崩溃分析(Artisan) Android SDK 使用指南

    摘要:崩溃分析使用指南最新版本更新内容支持插件,可收集异常修复启动次数统计一快速集成崩溃分析,支持及以上版本。会用进行错误堆栈还原帮助快速定位问题。手动上报的异常将单独显示在分析报表的异常栏目中。本文由崩溃分析产品经理撰写。 TestBird 崩溃分析(Artisan) Android SDK 使用指南 ** 最新版本1.0.4 更新内容 ** 支持H5插件,可收集H5 JS异常; 修复启...

    Barry_Ng 评论0 收藏0
  • 崩溃bug日志总结3

    摘要:详细崩溃日志信息查看崩溃类信息当调用或其变体之一失败时,会引发此异常,因为无法找到执行给定意图的活动。引发崩溃日志的流程分析问题所在是方法。 目录介绍 1.1 OnErrorNotImplementedException【 Cant create handler inside thread that has not called Looper.prepare()】 1.2 adb.e...

    import. 评论0 收藏0
  • 网易云捕性能踩坑解决之道上篇

    摘要:从零开始设计开发一个日处理数据亿的大数据高并发实时系统,哪些性能问题需要特别注意这里我们一起梳理一下本文中我将以,同学戏称的系统网易云捕设计开发实践中两年的时间里碰到的真实问题,踩过的坑及解决问题的方法和大家一起讨论如何解决这些问题。 本文由作者余宝虹授权网易云社区发布。 从零开始设计开发一个日处理数据8亿的大数据高并发实时系统,哪些性能问题需要特别注意?这里我们一起梳理一下,本文中我...

    李义 评论0 收藏0
  • Android实际开发bug大总结

    摘要:换句话说,环境或应用程序没有处于请求操作的适当状态。项目中异常分析引发崩溃日志的流程分析解决办法常见的出现场景状态异常非法线程操作。导致的方法出来显示消息位于该消息之后,迟迟没有执行。这时候,的超时检测结束,删除了服务中的记录。 目录介绍 1.1 java.lang.UnsatisfiedLinkError找不到so库异常 1.2 java.lang.IllegalStateExce...

    peixn 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<