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?
The dependencies can be located on your machine or in a remote repository, and any transitive dependencies they declare are automatically included as well. This page describes how to use dependencies with your Android project, including details about behaviors and configurations that are specific to the Android plugin for Gradle.
Located at module-name /src/test/java/. These are tests that run on your machine's local Java Virtual Machine (JVM). Use these tests to minimize execution time when your tests have no Android framework dependencies or when you can mock the Android framework dependencies.
To create a test module, proceed as follows: 1 Create a library module. 2 In the module level build file, apply the com.android.test plugin instead of com.android.library. 3 Sync your project. More ...
Test your app. Android Studio is designed to make testing simple. With just a few clicks, you can set up a JUnit test that runs on the local JVM or an instrumented test that runs on a device.
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
what worked for me was - in 'Order and Import' section bringing my jar file up
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With