eclipse打包出错 GC overhead limite execteeded

本文介绍了解决Eclipse在打包过程中出现速度过慢甚至异常的问题,通过调整Eclipse的内存分配设置来提高打包效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

虽然,现在安卓开发工具,绝大部分人都使用了Android studio,但是还是有少部分人使用eclipse开发,比如说我,而且Java-web的开发还是一如既往的eclipse。
使用eclipse打包的时候,由于需要将工程打包成apk,这个时候,电脑运行负荷很高,内存和CPU都会飚的很高,
当电脑长时间没关机,比如我,大概一周关机一次,再比如电脑开的进程多一点,这个时候打包,eclipse就会特别缓慢,甚至直接抛出异常,导致打包失败。

下面贴出报错,并给出解决方案

报错如下:

*An internal error occurred during: “Building workspace”.##

或者

GC overhead limit exceeded##

这里写图片描述

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

解决方案:

其实,引起的原因很明显,是因为运行内存不足,那就简单了,给加大eclipse的运行内存,就可以解决问题了,
打开eclipse安装目录下面的eclipse.init文件,

-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20120913-144807
-product
com.android.ide.eclipse.adt.package.adtproduct
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.6
-XX:MaxPermSize=256m
-Xms256m
-Xmx512m

修改里面的参数,最简单的办法,将所有的参数加大一倍。但是最好还是仔细看看各个参数,很假单,通过名字就直接明白是什么意思了。就不赘述了,直接加大运行内存和启动内存就可以了。

-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20120913-144807
-product
com.android.ide.eclipse.adt.package.adtproduct
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
512m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.6
-XX:MaxPermSize=512m
-Xms1024m
-Xmx2048m
### 解决方案 在使用 IntelliJ IDEA 和 Maven 编译打包时,如果出现 `GC overhead limit exceeded` 错误,通常是由于 Java 虚拟机 (JVM) 的内存分配不足引起的。以下是详细的解决方案: #### 1. **增加 JVM 内存配置** 可以通过修改 Maven 启动参数来增大其可用内存。具体方法如下: - 打开 IntelliJ IDEA 设置 (`File -> Settings`)。 - 导航到 `Build, Execution, Deployment -> Build Tools -> Maven -> Runner`。 - 修改 `-Xmx` 参数以提高最大堆内存大小。例如,将其设置为更大的值(如 2G 或更高),命令形式为: ```bash -Xmx2g ``` 如果仍然不够,则可以进一步提升至更高的数值。 此操作能够有效缓解因内存不足而导致的编译失败问题[^3]。 #### 2. **禁用 GC Overhead Limit 检查** 通过关闭垃圾回收器的过度占用检测功能也可以暂时解决问题。可以在上述相同位置添加以下选项: ```bash -XX:-UseGCOverheadLimit ``` 这会告诉 JVM 不要因为长时间执行垃圾收集而中断程序运行。不过需要注意的是,这种方法只是掩盖了潜在性能瓶颈,并未真正解决根本原因[^2]。 #### 3. **优化项目结构与依赖管理** 对于特别庞大的工程来说,除了简单地扩充硬件资源外还需要考虑其他方面可能存在的效率低下之处。比如是否存在重复引入相同的库文件?是否有不必要的插件加载拖慢速度? 另外还可以尝试拆分模块化设计减少单次构建所需处理的数据量从而降低对系统的要求程度[^4]。 #### 4. **升级 JDK 版本** 有时较低版本的 JDK 可能存在某些已知缺陷,在面对特定场景时容易触发类似的错误消息。因此建议尽可能采用最新稳定版作为开发环境的基础组件之一[^5]。 下面给出一段简单的脚本来演示如何手动指定 MAVEN_OPTS 来完成以上提到的部分调整措施: ```bash export MAVEN_OPTS="-Xms512m -Xmx2048m -XX:+TieredCompilation -XX:TieredStopAtLevel=1" mvn clean install ``` --- ### 示例代码片段展示如何自定义Maven启动参数 如果你更倾向于直接编辑IDEA中的配置而非外部shell变量的话,那么可以直接按照前面描述的方式去更改对应字段即可达到同样效果。 ```xml <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.2</version> <configuration> <!-- Other configurations --> </configuration> <executions> ... </executions> </plugin> ``` 注意这里仅作为一个示意用途的实际应用当中应该依据具体情况灵活运用这些技巧组合起来综合应对复杂情况下的挑战。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值