7

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?

Mogsdad
  • 44,709
  • 21
  • 151
  • 275
rciovati
  • 27,603
  • 6
  • 82
  • 101
  • Did you ever get a solution for this? I tried the suggested solutions / blog as well but still did not have success. – dispake Nov 08 '11 at 08:51
  • The suggested solution isn't working for me neither. In case it matters, my missing library depends on a native library (that load flawlessly in my main project) – xverges Sep 27 '12 at 13:55

3 Answers3

16

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

inazaruk
  • 74,247
  • 24
  • 188
  • 156
2

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

Mogsdad
  • 44,709
  • 21
  • 151
  • 275
tarun_tenniso
  • 214
  • 5
  • 20
1

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

Testo Testini
  • 2,200
  • 18
  • 29