I need help with a project dependency issue in the Android SDK.
I have the following projects:
“Sync” (a Java only project)
“Agonis” (an Android Library project)
“Dragonis” (an Android application project)
Agonis has a project dependency on Sync, and Dragonis has a project dependency on Agonis, like so:
Dragonis->Agonis->Sync
I have correctly used the Properties->Android->Library dialog to add Agonis as an Android Library. I have exported the Sync project in the Agonis build path setup:
https://i.stack.imgur.com/GsQIR.png
In the Dragonis project, I see both Agonis and Sync in the “Android Dependencies” virtual folder:
https://i.stack.imgur.com/EhH8L.png
From here, I would expect everything to just work, but it doesn’t.
I can start the app, but as soon as I instantiate a type from the Agonis project (com.mob.agonis.AgonisServer), I get a NoClassDefFoundError. If it matters, the Agonis type I am trying to instantiate extends a type that is in the Sync project (com.mob.sync.Server).
I tried cleaning all the projects, and using Android Tools->Fix Project Properties on both Agonis and Dragonis to no avail.
Am I overlooking something?
I figured it out.
The Sync Java-only library was compiling to 1.7 Java byte code. Android only supports converting Java 1.6 byte code to DEX.
Scroll to the top of the console, kids.