79
votes

I have added a 2.45mb jar file to my Android eclipse project and now I continue to get "Conversion to Dalvik format failed: Unable to execute dex: Java heap space" no matter what I do.

I have researched online, and was informed to update my eclipse.ini to increase my Java VM heapsizes. I have done this for all the values in eclipse.ini and I continue to get the build error.

Any ideas?

5
Can you please post the lines that you added to eclipse?CRM
-startup plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar --launcher.library plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.1.R36x_v20100810 -product org.eclipse.epp.package.java.product --launcher.defaultAction openFile --launcher.XXMaxPermSize 512M -showsplash org.eclipse.platform --launcher.XXMaxPermSize 512m --launcher.defaultAction openFile -vmargs -Dosgi.requiredJavaVersion=1.5 -Xms512m -Xmx512mAndroidPlaya
i too just have the entries -data @noDefault in my init: I've tried adding various code including -Xms512m -Xmx512m and -vmargs -Xms512m -Xmx512m in various permutions with the these two lines. also there are suggestions for adding about 20 more lines of code which I've also tried. someone needs to post the COMPLETE lines of code needed in the exclipse.ini, from top to bottom, and whether any file paths in the added code have to be customized, which will be different for various configurationsAndroidcoder
I've also tried launching from command line with eclipse -vmargs -Xms512m -Xmx512m which hasn't workedAndroidcoder

5 Answers

209
votes

Modify the -XmsAm and -XmxBm paremeters in eclipse.ini so that they are large enough. The default is -Xms40m -Xmx384m. Try changing them both to -Xms512m -Xmx512m and restart eclipse to see if that helps. If not, continue to increase the values and restart eclipse until either one of two things happens:

  1. Your build completes.
  2. Eclipse won't restart because you don't have enough memory.

eclipse.ini is located at /etc/eclipse.ini in Ubuntu (assuming you installed Eclipse from the Ubuntu repositories).

For MAC please see:

Finding eclipse.ini is a wee bit tricky. To locate it, right-click on the Eclipse Application icon and select "Show Package Contents", then double-click on the "Contents" folder and then double-click on the "MacOS" folder, the home of eclipse.ini

https://confluence.sakaiproject.org/pages/viewpage.action?pageId=61341742

20
votes

Sometimes checking the .jar library in project properties also causes this problem. In that case, try the following:

Right click your project. 
Go to Properties -> Java Build Path -> Order and Export.
Uncheck the check box against your included library. 
Press OK and run the project.

On doing this Eclipse will take only the classes which are needed in the code, from the jar instead of storing all the classes from the jar.

0
votes

All above answers are perfect , but you can try one more thing and that is fast and easy , close all your unnecessary open projects in Eclipse workspace and then Restart Eclipse .

You can also increase the -XmsAm and -XmxBm paremeters in eclipse.ini .

0
votes

Go to your project properties and remove your added libraries from Java Build Path hit ok, then again re add them. I also faced this problem.By doing this I solved this issue.

-1
votes

Important addition:

The solution didn't work on my Windows (probably memory allocation issues), but did well on a Linux on same machine. So installation of another OS would help you or Windows re-installation.