I am having problem when using automation script for android application
I am using ant build tools for get apk of my application (I have problem of 64 k method so i used ant method )
Apk works fine in real device with manual testing, but when we run apk with automation script like junit or calabash i got ClassNotFoundException.
Please see my log cat out for more information
Note :"SplashActivity" is a activity class in my application.
08-14 09:48:44.626: W/dalvikvm(921): Unable to resolve superclass of Lcom/xxxxxxx/client/android/activities/SplashActivity; (2944)
08-14 09:48:44.626: W/dalvikvm(921): Link of class 'Lcom/xxxxxxx/client/android/activities/SplashActivity;' failed
08-14 09:48:44.665: W/dalvikvm(921): threadid=14: thread exiting with uncaught exception (group=0x40a71930)
08-14 09:48:44.695: I/System.out(921): URI: //ping
08-14 09:48:44.705: E/AndroidRuntime(921): FATAL EXCEPTION: Thread-87
08-14 09:48:44.705: E/AndroidRuntime(921): java.lang.RuntimeException: java.lang.ClassNotFoundException: com.xxxxxxx.client.android.activities.SplashActivity
08-14 09:48:44.705: E/AndroidRuntime(921): at sh.calaba.instrumentationbackend.InstrumentationBackend.getActivity(InstrumentationBackend.java:52)
08-14 09:48:44.705: E/AndroidRuntime(921): at sh.calaba.instrumentationbackend.InstrumentationBackend$1.run(InstrumentationBackend.java:93)
08-14 09:48:44.705: E/AndroidRuntime(921): Caused by: java.lang.ClassNotFoundException: com.xxxxxxx.client.android.activities.SplashActivity
08-14 09:48:44.705: E/AndroidRuntime(921): at java.lang.Class.classForName(Native Method)
08-14 09:48:44.705: E/AndroidRuntime(921): at java.lang.Class.forName(Class.java:217)
08-14 09:48:44.705: E/AndroidRuntime(921): at java.lang.Class.forName(Class.java:172)
08-14 09:48:44.705: E/AndroidRuntime(921): at sh.calaba.instrumentationbackend.InstrumentationBackend.getActivity(InstrumentationBackend.java:49)
08-14 09:48:44.705: E/AndroidRuntime(921): ... 1 more
08-14 09:48:44.705: E/AndroidRuntime(921): Caused by: java.lang.NoClassDefFoundError: com/xxxxxxx/client/android/activities/SplashActivity
08-14 09:48:44.705: E/AndroidRuntime(921): ... 5 more
08-14 09:48:44.705: E/AndroidRuntime(921): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.xxxxxxx.client.android.activities.SplashActivity" on path: /system/framework/android.test.runner.jar:/data/app/com.xxxxxxx.client.android.test-1.apk:/data/app/com.xxxxxxx.client.android-1.apk
08-14 09:48:44.705: E/AndroidRuntime(921): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:65)
08-14 09:48:44.705: E/AndroidRuntime(921): at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
08-14 09:48:44.705: E/AndroidRuntime(921): at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
08-14 09:48:44.705: E/AndroidRuntime(921): ... 5 more
I don't know it's proper answer but I managed solve that issue by the following way .
Issues happen because of inject the external library on runtime.
So we need to give some time to initialize the injected library.
When ever i get build for testing i will use separate launcher activity with a button. Once my external library initialization got over (mine it take 1 min , so add solo.sleep 60*1000) i moved to actual launcher page by clicking the button. Its works.