编译Android出错:Unable to execute dex: Java heap space

昨天在编译运行(Run As Android Application)同事写的应用(移植)时,提示Unable to execute dex: Java heap space,刚开始以为是Android SDK没装好,于是我写了个Hello Android程序来验证,Hello Android可以运行。

于是,我Google了一下,据说是因为升级了ADT缘故(好像是Android小组的回复),将最新的ADT换回之前的,或者使用Android小组(?)说的Fix了的版本就可以了(这一点我没有试验)。

其实,继续使用ADT14也是可以的,这需要修改Eclipse的配置文件,也就是网上很多人说的那样,修改Eclipse安装目录下eclipse.ini文件:

1)在文件开头添加

-vm 
D:\Program Files\Java\jre6\bin\javaw.exe

其中,D:\Program Files\Java\jre6是本人机器上JRE的路径,需要根据实际情况修改

2)搜索–launcher.XXMaxPermSize,将其下一行的

256m

改为

512m

其中,红色标出的部分可能不同的Eclipse版本,数字(256)不同。

3)搜索-vmargs

-vmargs 
-Xms40m 
-Xmx384m

-Xms40m 
-Xmx384m

改为

-Xms512m 
-Xmx1024m

并在其后加上

-XX:MaxPermSize=256m

同上,可能不同版本的Eclipse,红色标出的部分,数字(40和384)会不同。

然后重启Eclipse,编译出错的工程即可。

网上有人说这样不行,不知道是不是因为原文作者没有详细的描述怎么修改,因为在我机器上解决了这个问题^_^


这个错误信息是由于在链接时无法找到指定的可执行文件导致的。具体来说,它指出无法链接到一个名为'/Users/apple/Library/Developer/Xcode/DerivedData/LePaiDemo-ftsuwgzvjdjwzghgkuefbzvdkvey/Build/Products/Debug-iphoneos/LePaiDemo.app/LePaiDemo'的可执行文件,原因是该文件不适用于架构armv7。同时,还出现了一个错误提示,即clang: error: unable to execute command: Segmentation fault (core dumped)。 这个错误通常是由于编译器或链接器的问题导致的。可能的原因包括编译器版本不兼容、编译选项设置错误、依赖库缺失或不匹配等。 为了解决这个问题,你可以尝试以下几个步骤: 1. 确保你使用的编译器版本与项目要求的兼容。你可以检查项目的编译设置,确保选择了正确的编译器版本。 2. 检查编译选项是否正确设置。你可以检查项目的构建设置,确保编译选项正确设置,并且没有冲突或错误。 3. 检查依赖库是否正确配置。你可以检查项目的依赖库设置,确保所有依赖库都正确添加,并且与项目的架构匹配。 4. 清理并重新构建项目。你可以尝试清理项目并重新构建,以确保所有编译和链接过程都能够正确执行。 如果以上步骤都没有解决问题,你可能需要进一步调查错误的具体原因,例如查看编译器或链接器的日志输出,以获取更多的信息。 #### 引用[.reference_title] - *1* [iOS 开发报错 clang: error: unable to execute command: Segmentation fault: 11](https://blog.csdn.net/u011496891/article/details/45098567)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值