398

Since updating to ADT 14 I can no longer build my project. It was building fine prior to updating.

The error:

[2011-10-23 16:23:29 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/myapp/R$array;
[2011-10-23 16:23:29 - myProj] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lcom/myapp/R$array;

Similar issues have been reported and I have tried the suggestions there including

  • Restarting Eclipse.
  • Cleaning the project and rebuild - Disable "Project->Build Automatically" option, then "Clean" and "Build" project, then try to run. reset "Build Automatically" option to On
  • Re-installing the Android Developer Tools
  • Re-installing Eclipse (updated to the latest version 3.7.1)
  • Created a new project importing from the file system
  • Created a new project from subversion.
3
  • were you working on windows or mac .. because I would like to follow the following answers but I am not sure if they are going to work on mac .. thanks Commented Feb 8, 2014 at 16:33
  • if you have imported library project and have also imported library JAR in lib folder then you have to remove jar file from your lib folder and also from [ Build Path -> Configure Build Path ] . And it will be worked. Commented Jan 13, 2016 at 3:50
  • Look at my answer on following link. stackoverflow.com/a/38391449/3702595 Commented Jul 15, 2016 at 8:35

54 Answers 54

460

I had the same problem, quite weird because it was happening only when using Eclipse (but it was OK with Ant). This is how I fixed it:

  • Right click on the Project Name
  • Select Build Path -> Configure Build Path
  • In Java Build Path, go to the tab Order and Export

  • Uncheck your .jar library

Only sometimes: In Order and Export tab I did not have any jar library there, so I have unchecked Android Private Libraries item. Now my project is running.

Sign up to request clarification or add additional context in comments.

11 Comments

In my project, I was including the support library from the sdk directory in my build path, and I had the support library in the "libs" folder for support of ant building. I unchecked one and it fixed my issue.
Sometime between the last time building and launching, a new library appeared mysteriously in my project: "Android Private Libraries" containing the support library I was already referencing. So this mysterious "multiple dex files define ____" appeared. Checking the Java Build Path and seeing this new item, and unchecking the originally-included support library solved the problem for me.
Thanks a lot. This is the correct solution. I really do not know why eclipse has this much bugs. Now the situation is like only 2 hours I can code and 6 hours I have to find solution to this kinds of unnecessary issues.
In Order and Export tab I did not have any jar library there, so I have unchecked Android Private Libraries item. Now my project is running.
In my case I had a dublicate of ´android-support-v4.jar´. When i deleted it, the error went away
|
94

My problem was resolved after cleaning up some directories and files left over from the previous versions of the tools. ADT Rev 14 changes where binaries are stored. I deleted the entire bin directory, restarted Eclipse and cleaned the build and forced a rebuild. That seemed to do the trick initially but the problem came back after the next run.

I finally discovered that my bin directory was included in the project build path. I excluded bin from the build path and repeated the steps above. This resolved my problem.

5 Comments

What the heck Google. This problem keeps coming back even with R15.
I edited the solution above to include the final resolution. Resolved permanently now.
In short, no one really knows why the problem happens, what it means and how to fix it (I don't have any bin directory in the Java Build Path). I avoided updating to R15 for these reasons, staying with R9. But I am still having a similar problem, with no clue in sight. Any tip or help would be greatly appreciated.
@BillTheApe - agreed. This is beyond frustrating, it's costly.
@TRedman I finally managed to solve the problem. Without understanding why. Don't laugh. LOL +1.
50

[Solved for me]

Eclipse project properties->Java build path->Order and export

Uncheck Android private libraries.

1 Comment

Didn't help in my case
46

None of the above helped. It was a simple problem in the end.

I had a project which uses the FacebookSDK and ViewPagerIndicator as library projects. All were built on Android API 16 and those two projects used the android support library vX (X not being 16!)

I added an external JAR to both those projects and pointed it to \extras\android\v4... And also removed the v4 jar I had in their libs folders.

Clean all projects and re-build.

Voilla!

The exact error I was receiving: Unable to execute dex: Multiple dex files define Landroid/support/v4/view/PagerAdapter; Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Landroid/support/v4/view/PagerAdapter;

Comments

36

This problem was happening me, I had an external .jar in my libs folder called gson-2.2.2.jar but for some reason there were two of them, gson-2.2.2.jar and gson-2.2.2.jar(1), I simply deleted the latter and my project built fine again.

2 Comments

I had a similar issue when there was an old jar file in the libs folder and linked it to a newer jar in the same workspace. When ADT finds multiple definitions for the same symbol it puts an error like this. Deleting the old jar file in the libs folder fixed it for me.
External jar is one of the causes to the problem and happened to be so in my case, too. I just had a leftover jar in my /libs from a prior experiment, resulting in both a Library Project and the .jar that was generated from it. Deleting that jar under /libs solves the problem. +1
31
  1. Close eclipse.
  2. Delete bin folder inside your project folder.
  3. Start eclipse and clean your project.
  4. Now run and the problem should be gone

5 Comments

Mateus Viccari's answer solved my problem, I removed duplicate libs, and it works like charm..
Worked for me.If manifest file get removed by eclipse from bin directory,add it manually and clean project again.
Works for me. Also make sure you don't have the same .jar in two different places (in my case I had it both in a library project and in a project referencing that library project. Seems Eclipse just added it automatically for some reason)
For me, I just cleaned the ENTIRE workspace. Simply cleaning the project was not enough. I believe my problem had to do with switching one of the projects to "Library" in the middle of a clean operation
Didn't help in my case
26

As others have mentioned, this occurs when you have multiple copies of the same class in your build path - including bin/ in your classpath is one way to guarantee this problem.

For me, this occurred when I had added android-support-v4.jar to my libs/ folder, and somehow eclipse added a second copy to bin/classes/android-support-v4.jar.

Deleting the extra copy in bin/classes solved the problem - unsure why Eclipse made a copy there.

You can test for this with

grep -r YourOffendingClassName YourApp | grep jar

Comments

23

For me, I just right click on project -> Build path -> configure build path -> Libraries -> remove dependency

after it works.

Comments

20

This error can happen if you have two jars that contains the same class names, e.g. I had two library: jsr311-api-1.1.1.jar, and jersey-core-1.17.1.jar, both containing the class javax.ws.rs.ApplicationPath. I removed jsr311-api-1.1.1.jar and it worked fine.

1 Comment

This is the perfect solution for me. I added same libs twice. Thanks.
19

I was getting this error after adding the facebooksdk.jar to a project that already had dependencies on the android-support-v4.jar. Since the facebooksdk.jar already includes its own android-support-v4.jar there were conflicts. Removing the earlier android-support-v4.jar from the projects Properties / Java Build Path / Libraries resolved the issue for me.

Comments

18

Go to Project/properties and Java Build Path and unchecked the Android Private Libraries.

This is also another case for this kind of error

Done

Comments

15

I removed Android dependencies from build path and it worked.

Edit: ignore that. I had same jar in my maven dependencies and libs folder. I removed the one at the lib folder.

2 Comments

Removing Android Dependencies from the build path broke my project. Fortunately it was easy to restore by right-clicking project > Android Tools > Fix Project Properties.
In some cases removing android dependencies and regenerating it solves some problems. But as in my edit that is not the case.
9

You have probably installed r14, this error may have been caused due to the platform tools update, you have to re-install your sdk

3 Comments

I just completely blew away my SDK and installed it fresh from the downloaded zip file and then loaded the Android APIs with the Android SDK Manager. I had high hopes but the problem persists.
There is a .android hidden folder in windows, you should delete that too.
the same problem exist
9

For me this problem only exists as long as there are Android library projects involved in my project. So when I remove all the libraries and do as you said I can run my app again. If there are libraries involved even the bin-removal-trick trick won' work.

I don't get why this bug first appeared today since I'm using ADT 14 for several days now. Well there were other bugs that kept me happy though.

1 Comment

Many of the solutions look like some voodoo stuff... :)
8

Deleting the bin folder was not enough, I also deleted the gen folder. Then after two rebuilds the dex error message was gone.

Comments

8

Select the project in Project Explorer, right-click and select Properties -> Java Build Path -> Source -> Check the box for Allow output folders for source folders

Comments

8

I was basically facing the same issue. I deleted the BIN folder, then removed unused jar files for Order and Import from eclipse. IT WORKED after that

Comments

7

I'm late to this party, but adding my own experience so I can find it again later :)

I ran into this problem after upgrading the android sdk and eclipse ad-ins. No upgrade goes unpunished!

The problem for me was related to library projects, my app references both standard java projects and android library projects. I noticed the Java Build Path settings were including the android library projects src and res folders in the Source list (upvotes to everyone that mention bin in source being issue, src and res was also an issue.)

So the solution was:

  1. Remove all referenced Android libraries source and project references from the Java Build Path section of the settings in both Source list and Project list
  2. Make sure pure java dependencies are listed in Project list, and Checked in the Order and Export tab so the classes are included in the apk
  3. Make sure all Android library dependencies are listed on the Android section of project properties, in the library section below the checked SDK versions.

It was along way to piece all that together from the other solutions! Phew!

2 Comments

Well stated! I came to identical conclusions after a lot of work. I just wanted to add that it if any of your library projects include other library projects or pure-Java dependencies, that they must all be added the same way, otherwise this error will arise. If you follow the rules above for all your projects, you shouldn't have any problems.
One more thing... it appears that if you don't need to export the Android Private Libraries of a project or library project, don't. If more than one project or library project exports it, you'll get the multiple dex files error.
6

I ran into this when I upgraded from adt 14 to 15 and to get it to work I ended up just deleting the .eclipse folder (along with my settings) and re-installing the adt 15.

Comments

6

After reading Terrys response about deleting the bin directory and Larrys about the the location of the ANT directory:

I moved the files located in my projects BIN directory to the BIN/CLASSES and im up and running.

Edit 1 Then failed on second run...doh

Edit 2 So closed Eclipse moved files back to original location and its all working... um what? I don't pretend to know why this worked. Will update if any changes.

Edit 3 I have noted from my backups that there were indeed duplicate files in the BIN directory and BIN/CLASSES.

So the answer is: don't have files in both locations. At least for me that's what worked.

2 Comments

Try to reduce answers to: Helpful conclusion followed by supporting facts. Avoid history narrative AMAP; People tend to flag that, thinking it's "not an answer".
cheers for that, any help to making my ramblings clearer is appreciated
6

Modify your eclipse.ini file and set the maximum memory parameter to

-Xmx1024m

Then restart your computer.

It worked for me.

1 Comment

Nothing related, giving more memory doesn't solve the dependency problems
6

found a solution i believe??

    [2013-04-28 23:56:09 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/coremedia/iso/AbstractBoxParser$1;

Where it says : "Lcom/coremedia/iso/AbstractBoxParser$1" that just happen to be the location of the library I imported that was causing the issue. Looked for com.codemedia.iso.AbstractBoxParser$1.class and .AbstractBoxParser.class.... took that jar, unpackaged it, removed both of those files, then repackaged as a .zip, added to library, cleaned and worked! no more conflict for me! (also no updates or additional downloads)

Comments

6

I had two different versions of Cordova .jar-files in my libs folder, I deleted the one I wasn't even using and it worked right away. Weird because I didn't notice that before and it worked before and then suddenly stopped working...

Comments

5

The ADT R14 update changes where the classes go to the bin/classes directory (see http://tools.android.com/recent/buildchangesinrevision14). If you are using ANT, you should change the path for your classes from bin to bin/classes. This worked for me.

1 Comment

I am using Eclipse. Do you know where you change the class path in Eclipse?
5

Solution for me:

  1. BACK UP YOUR CODE!
  2. Navigate to your project workspace (not your project) and run the following commands:

    dev1:workspace$ cd ~/Documents/workspace/.metadata/.plugins/ dev1:workspace$ rm -rf org.eclipse.core.resources

  3. Navigate to your Eclipse directory and type this command:

    dev1:eclipse$ ./eclipse clear

  4. Eclipse will start with an empty workspace - don't worry your projects are still there. Simple create new project from existing resource and things should be gravy.

The exact error I was receiving: [2012-02-07 14:15:53 - Dex Loader] Unable to execute dex: Multiple dex files define Landroid/support/v4/view/PagerAdapter; [2012-02-07 14:15:53 - ProjectCloud] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Landroid/support/v4/view/PagerAdapter;

Comments

5

I have several library projects with the same package name specified in the AndroidManifest (so no duplicate field names are generated by R.java). I had to remove any permissions and activities from the AndroidManifest.xml for all library projects to remove the error so Manifest.java wasn't created multiple times. Hopefully this can help someone.

Comments

4

After trying all the other suggestions with no luck, I deleted all the contents of my projects 'bin' directory, then ran eclipse again and it worked.

Comments

4

I converted a non-library project to a library project, but it had a previously built jar file in the libs folder. Removing this jar file caused this error to go away.

Comments

4

I was facing the same issue then i saw while pushing my app some jar files which were loaded twice hence multiple dex error .Just go to your project properties -> Java Build Path and try unchecking jar which is being loaded twice.

Comments

4

[Solved for me]

by removing the duplicate library "JAR file" then remove BuildConfig.java file, Clean project and its work.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.