And it's definitely my jar that is causing this, since if I remove references to it's classes from within the MainActivity then the problem is solved and the app runs on the device.

Using apktool I checked to see what goes into the apk, and I found that everything is being added to the smali directory, that is everything except for my package (com.example.core).
So all of the android app classes (com.example.project), the gson (com.google.gson) and netty (org.jboss.netty) from my jar are there but not com.example.core.

I don't have the jar in the Order and Export tab, only the src and gen folders and the Android Dependencies and Android 4.2. But as I wrote in my question, some content of my jar is being added to the apk, but not all of it. So it's not true that my jar is not available at runtime.
–
Nitzan TomerJan 31 '13 at 12:19

From what I've read, in the newer versions of ADT you don't need to do that, in fact you should not do that. It's supposed to be enough to add the needed libraries to the libs directory of the project.
–
Nitzan TomerJan 31 '13 at 12:28

I haven't read about that. AFAIK you still need to add the jar to your build path.
–
AhmadJan 31 '13 at 13:22