rciovati
rciovati

Reputation: 28073

Testing Android project with jar dependecies

My Android project has a few jar libraries as dependencies. Alone, it compiles and works well. I wrote a little test project but running it I don't get any result (no tests passed or failed) nor any error, but in the logcat's output there are warnings like this:

06-06 14:55:43.533: INFO/dalvikvm(7049): Failed resolving Lcom/adwhirl/adapters/InMobiAdapter; interface 315 'Lcom/inmobi/androidsdk/InMobiAdDelegate;'
06-06 14:55:43.533: WARN/dalvikvm(7049): Link of class 'Lcom/adwhirl/adapters/InMobiAdapter;' failed
06-06 14:55:43.533: INFO/dalvikvm(7049): Failed resolving Lcom/adwhirl/adapters/InMobiAdapter; interface 407 'Lcom/inmobi/androidsdk/InMobiAdDelegate;'
06-06 14:55:43.533: WARN/dalvikvm(7049): Link of class 'Lcom/adwhirl/adapters/InMobiAdapter;' failed
06-06 14:55:43.553: DEBUG/dalvikvm(7049): GC_CONCURRENT freed 471K, 51% free 2880K/5831K, external 0K/0K, paused 2ms+4ms
06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049): Cannot load class. Make sure it is in your apk. Class name: 'com.adwhirl.adapters.InMobiAdapter'. Message: com.adwhirl.adapters.InMobiAdapter
06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049): java.lang.ClassNotFoundException: com.adwhirl.adapters.InMobiAdapter
06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049):     at java.lang.Class.classForName(Native Method)
06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049):     at java.lang.Class.forName(Class.java:234)
06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049):     at android.test.ClassPathPackageInfoSource.createPackageInfo(ClassPathPackageInfoSource.java:89)
06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049):     at android.test.ClassPathPackageInfoSource.access$000(ClassPathPackageInfoSource.java:40)
06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049):     at android.test.ClassPathPackageInfoSource$1.load(ClassPathPackageInfoSource.java:51)
06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049):     at android.test.ClassPathPackageInfoSource$1.load(ClassPathPackageInfoSource.java:48)
06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049):     at android.test.SimpleCache.get(SimpleCache.java:31)
06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049):     at android.test.ClassPathPackageInfoSource.getPackageInfo(ClassPathPackageInfoSource.java:73)
06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049):     at android.test.ClassPathPackageInfo.getSubpackages(ClassPathPackageInfo.java:48)
06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049):     at android.test.ClassPathPackageInfo.addTopLevelClassesTo(ClassPathPackageInfo.java:61)
06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049):     at android.test.ClassPathPackageInfo.getTopLevelClassesRecursive(ClassPathPackageInfo.java:55)
06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049):     at android.test.suitebuilder.TestGrouping.testCaseClassesInPackage(TestGrouping.java:154)
06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049):     at android.test.suitebuilder.TestGrouping.addPackagesRecursive(TestGrouping.java:115)
06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049):     at android.test.suitebuilder.TestSuiteBuilder.includePackages(TestSuiteBuilder.java:103)
06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049):     at android.test.InstrumentationTestRunner.onCreate(InstrumentationTestRunner.java:360)
06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049):     at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3398)
06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049):     at android.app.ActivityThread.access$2200(ActivityThread.java:123)
06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:977)
06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049):     at android.os.Handler.dispatchMessage(Handler.java:99)
06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049):     at android.os.Looper.loop(Looper.java:130)
06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049):     at android.app.ActivityThread.main(ActivityThread.java:3835)
06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049):     at java.lang.reflect.Method.invokeNative(Native Method)
06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049):     at java.lang.reflect.Method.invoke(Method.java:507)
06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847)
06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605)
06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049):     at dalvik.system.NativeStart.main(Native Method)
06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049): Caused by: java.lang.NoClassDefFoundError: com.adwhirl.adapters.InMobiAdapter
06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049):     ... 26 more
06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049): Caused by: java.lang.ClassNotFoundException: com.adwhirl.adapters.InMobiAdapter in loader dalvik.system.PathClassLoader[/system/framework/android.test.runner.jar:/data/app/com.mypackage.test-1.apk:/data/app/com.mypackage-2.apk]
06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049):     at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049):     at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049):     at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049):     ... 26 more

As you can see seems that there are problem exporting the libraries, infact I get an error like that for every library. I read in this blog post that to get it to work, it should be enough to export all the libraries in the main project, but for me didn't works. Any other idea?

Upvotes: 7

Views: 9578

Answers (3)

tarun_tenniso
tarun_tenniso

Reputation: 214

what worked for me was - in 'Order and Import' section bringing my jar file up

Upvotes: 2

Testo Testini
Testo Testini

Reputation: 2240

Have you tried to put the jars in libs intead than lib ?

http://android.foxykeep.com/dev/how-to-fix-the-classdefnotfounderror-with-adt-17

Upvotes: 1

inazaruk
inazaruk

Reputation: 74790

Go to your project that uses .jar files (i.e. project under test). Click right button -> Properties-> Java Build Path -> Order and Export -> check libraries there

enter image description here

Upvotes: 16

Related Questions