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.
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.
https://i.stack.imgur.com/SbEWS.png
Simply checking Android Private Libraries was not enough, I also had to install Android SDK Build-tools in Android SDK Manager.
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.
https://i.stack.imgur.com/xTUoB.png
android.library.reference.n
is not java build path
, but rather project
->properties
-> Android
-> Library
-> Add...
. A gotcha.
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!
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.
I had the similar issue and my answer is slightly different from CommonsWare's. Here is my screenshot:
https://i.stack.imgur.com/GS9nF.png
After checking the libs back in my build started to work again.
Android Dependencies
got replaced by Android Private Libraries
and might only be still in there for legacy reasons. I guess it could be removed at any time.
I had also the same problem,
https://i.stack.imgur.com/Gldhs.png
Success story sharing
libs/
, but you may as well check it for all, in case you add stuff tolibs/
some months later and forget about this.