Long story cut short - I have an app that has been around for about 4 years now with a smallish user base (around 500 devices). It was originally developed on a Win XP machine but I then migrated over to a Debian Linux setup a year or so ago. No problems, all well and good.
A few months ago I updated to the latest Android SDK / ADT for Eclipse and everything went down the pan (the appcompat-v7 wouldn't build and can't be recognised).
In frustration, I've migrated back to the XP box and all seems well and good in that I no longer get critical errors and everything builds fine. The problem is when I deploy to my Nexus 7 for testing. It installs OK but on startup I immediately get "Unfortunately, nDroid (TE) has stopped".
Logcat shows the following. The class "uk.co.beetec.android.nDroidTE.NDroidTE" extends the Android Application
class and is quite clearly there in my code without errors or warnings at build time and it is declared in the AndroidManifest.xml.
I really have no idea what is going wrong here. Can anyone explain that stacktrace because I don't understand what might be causing it.
03-23 11:16:25.194: E/AndroidRuntime(16878): FATAL EXCEPTION: main
03-23 11:16:25.194: E/AndroidRuntime(16878): Process: uk.co.beetec.android.nDroidTE, PID: 16878
03-23 11:16:25.194: E/AndroidRuntime(16878): java.lang.RuntimeException: Unable to instantiate application uk.co.beetec.android.nDroidTE.NDroidTE: java.lang.ClassNotFoundException: Didn't find class "uk.co.beetec.android.nDroidTE.NDroidTE" on path: DexPathList[[zip file "/data/app/uk.co.beetec.android.nDroidTE-2/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
03-23 11:16:25.194: E/AndroidRuntime(16878): at android.app.LoadedApk.makeApplication(LoadedApk.java:563)
03-23 11:16:25.194: E/AndroidRuntime(16878): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4526)
03-23 11:16:25.194: E/AndroidRuntime(16878): at android.app.ActivityThread.access$1500(ActivityThread.java:151)
03-23 11:16:25.194: E/AndroidRuntime(16878): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364)
03-23 11:16:25.194: E/AndroidRuntime(16878): at android.os.Handler.dispatchMessage(Handler.java:102)
03-23 11:16:25.194: E/AndroidRuntime(16878): at android.os.Looper.loop(Looper.java:135)
03-23 11:16:25.194: E/AndroidRuntime(16878): at android.app.ActivityThread.main(ActivityThread.java:5254)
03-23 11:16:25.194: E/AndroidRuntime(16878): at java.lang.reflect.Method.invoke(Native Method)
03-23 11:16:25.194: E/AndroidRuntime(16878): at java.lang.reflect.Method.invoke(Method.java:372)
03-23 11:16:25.194: E/AndroidRuntime(16878): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
03-23 11:16:25.194: E/AndroidRuntime(16878): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
03-23 11:16:25.194: E/AndroidRuntime(16878): Caused by: java.lang.ClassNotFoundException: Didn't find class "uk.co.beetec.android.nDroidTE.NDroidTE" on path: DexPathList[[zip file "/data/app/uk.co.beetec.android.nDroidTE-2/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
03-23 11:16:25.194: E/AndroidRuntime(16878): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
03-23 11:16:25.194: E/AndroidRuntime(16878): at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
03-23 11:16:25.194: E/AndroidRuntime(16878): at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
03-23 11:16:25.194: E/AndroidRuntime(16878): at android.app.Instrumentation.newApplication(Instrumentation.java:980)
03-23 11:16:25.194: E/AndroidRuntime(16878): at android.app.LoadedApk.makeApplication(LoadedApk.java:558)
03-23 11:16:25.194: E/AndroidRuntime(16878): ... 10 more
03-23 11:16:25.194: E/AndroidRuntime(16878): Suppressed: java.lang.NoClassDefFoundError: uk.co.beetec.android.nDroidTE.NDroidTE
03-23 11:16:25.194: E/AndroidRuntime(16878): at dalvik.system.DexFile.defineClassNative(Native Method)
03-23 11:16:25.194: E/AndroidRuntime(16878): at dalvik.system.DexFile.defineClass(DexFile.java:226)
03-23 11:16:25.194: E/AndroidRuntime(16878): at dalvik.system.DexFile.loadClassBinaryName(DexFile.java:219)
03-23 11:16:25.194: E/AndroidRuntime(16878): at dalvik.system.DexPathList.findClass(DexPathList.java:321)
03-23 11:16:25.194: E/AndroidRuntime(16878): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:54)
03-23 11:16:25.194: E/AndroidRuntime(16878): ... 14 more
03-23 11:16:25.194: E/AndroidRuntime(16878): Suppressed: java.lang.ClassNotFoundException: uk.co.beetec.android.nDroidTE.NDroidTE
03-23 11:16:25.194: E/AndroidRuntime(16878): at java.lang.Class.classForName(Native Method)
03-23 11:16:25.194: E/AndroidRuntime(16878): at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
03-23 11:16:25.194: E/AndroidRuntime(16878): at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
03-23 11:16:25.194: E/AndroidRuntime(16878): at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
03-23 11:16:25.194: E/AndroidRuntime(16878): ... 13 more
03-23 11:16:25.194: E/AndroidRuntime(16878): Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available