我正在尝试使用命令行 Ant 编译一个非常大的多项目 Android 项目。我最初使用的是 Ant 1.8.3,但后来升级到了 1.8.4(结果是徒劳的)。虽然我确实安装了 Eclipse(Indigo,今天更新),但该项目的性质排除了为此在 Eclipse 中使用 Ant。
该代码似乎生成得很好,但是当它进入操作的“dex”阶段时,它会出现两个错误之一,具体取决于我的ANT_OPTS
:“GC Overhead Limit Exceeded”或“Java Heap Space”。
我用谷歌搜索并检查了堆栈。在找到各种链接(参见此处、此处、此堆栈问题和此堆栈问题)后,我修改了我的 Ant 选项。(许多链接涵盖了执行 Java 代码时发生的情况;我的问题实际上出在创建 Android APK 以供上传的 Ant 进程中)。
我的ANT_OPTS
环境变量目前是:
-Xms4g -Xmx4g -Xmn256m -XX:PermSize=256m -XX:MaxPermSize=1024m -XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled -XX:ParallelGCThreads=8
我尝试使用 完全关闭 GC Overhead Limit -XX:-UseGCOverheadLimit
,但所做的只是给我一个 Java Heap Space 错误而不是 GC Overhead Limit 错误。我已经问过我的同事这件事,但他们也没有想法。
哦,还有一个“细节”:我可以使用 Eclipse 编译和加载项目,这似乎“很好”;然而,这个“元项目”所需的项目数量之多表明我试图让 Ant 脚本正常工作。
系统信息:
- 操作系统:Windows 7 64 位
- Java:Sun,1.6,64 位
- 物理内存:8Gb
- 安卓:SDK工具:R20;平台工具:R12(今天更新,6 月 28 日)
还有什么我可以做的吗?另一个要搜索的关键字?还有什么地方可以看?