Тестирование проекта Android с jar-зависимостями - PullRequest
7 голосов
/ 06 июня 2011

Мой проект Android имеет несколько библиотек jar в качестве зависимостей. В одиночку он компилируется и работает хорошо. Я написал небольшой тестовый проект, но, запустив его, я не получаю ни результата (ни тесты ни пройдены, ни неудачные), ни ошибок, но в выводе logcat есть такие предупреждения:

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

Как видите, при экспорте библиотек возникают проблемы, в действительности я получаю такую ​​ошибку для каждой библиотеки. Я прочитал в этом посте , что для того, чтобы он заработал, должно быть достаточно экспортировать все библиотеки в основном проекте, но для меня это не сработало. Любая другая идея?

Ответы [ 3 ]

16 голосов
/ 06 июня 2011

Перейдите к вашему проекту, в котором используются файлы .jar (т.е. тестируемый проект). Нажмите правую кнопку -> Свойства -> Путь сборки Java -> Порядок и экспорт -> проверьте библиотеки там

enter image description here

2 голосов
/ 20 мая 2013

у меня получилось - в разделе «Заказ и импорт» мой файл jar поднялся

1 голос
/ 20 марта 2013

Вы пытались поместить банки в liad intead, чем lib?

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...