I have a rather big Android App project that is referencing several library projects. Everything was fine until i upgraded the eclipse ADT plugin to the newest version (v22). I also upgraded the SDK of course. I do not see any compile errors in eclipse, but when i run the project on the phone i get a NoClassDefFoundError.

java.lang.NoClassDefFoundError: org.acra.ACRA

The arca library is included in one of the referenced library project (in the libs folder) and i can see it in the "Android Private Libraries" in the package explorer, also as i said, no compile errors. The project runs fine on everyone else's computer that did not upgrade ADT.

I have already tried a whole bunch of stuff including but not limited to:

  • re-install the android SDK
  • download a fresh ADT bundle
  • delete all my code an get it again from git
  • copy the library in question to the app project
  • comment out the code that uses this library - i just get the same error for the next library

all without any success, so i'm getting really desperate here.

I would be really happy if anyone could give me a hint on how to solve that problem.

Solution 1

Quoting Streets of Boston from his adt-dev post:

When upgrading, the 'Order and Export' of the new 'Android Private Libraries' is not always checked. And the android-support-v4.jar is now in this 'Android Private Libraries' section.

To fix this, go to 'Order and Export' and check 'Android Private Libraries'. Then refresh/clean/rebuild.

After you done this 'fix' for a library project, you may need to just close and re-open any depending project, because they may not see this 'fix' immediately.

Give this a shot and with luck it will solve your problem.

Solution 2

Simply checking Android Private Libraries was not enough, I also had to install Android SDK Build-tools in Android SDK Manager.

Solution 3

I had also the same problem and my adt was 22.0.1. And none of the solution above worked. Further when adding a external library project to a working project.I always check the gen folder of working project and if R of external library project is there (along with package name),then only external library project is exported. And on my gen folder no packagename of external library was shown.

So I checked on project.properties file and there wasn't any external library link present android.library.reference.1= present. So I manually added the external library reference there ,even though I had added from project->properties->Java Build Path->Projects->Add. So manually editing the project.properties did all the work for me.

Solution 4

I have encountered a similar problem, spent about 3 hours, but none of the proposed here decisions did not help... Finally I found a source of the problem: my project files & project.properties were read-only. Eclipse is simply silently ignoring any changes in library dependencies when I doing it in the GUI!

Solution 5

I had the same problem. It was because of the eclipse project. To solve it I created a new project in eclipse, copy my existing project classes and resources into it and then launched eclipse again and added my custom includes.

Solution 6

I had the similar issue and my answer is slightly different from CommonsWare's. Here is my screenshot:

After checking the libs back in my build started to work again.

Solution 7

I had also the same problem,

i) add gson lib as referecend librairies
ii) check it in java Build Path