2013-04-09 2 views
0

Я вижу некоторые интересные предупреждения при загрузке моих модульных тестов для моего проекта Android. Я не вижу этих ошибок при нормальной работе приложения. Они не препятствуют запуску моих модульных тестов, но они касаются.Невозможно связать внешние библиотеки во время тестирования устройства Android

Библиотека Flurry, упомянутая в журнале ошибок ниже, находится в каталоге libs проекта библиотеки тестируемого проекта.

Вот что структура каталогов выглядит следующим образом:

  • приложение проекта
  • библиотека проекта
    • LIBS
      • FlurryAgent.jar
  • модульного тестирования пр роект

Ошибки выглядеть следующим образом:

04-09 14:03:12.337: I/dalvikvm(28914): Failed resolving Lcom/flurry/android/bg; interface 2179 'Lcom/google/ads/AdListener;' 
04-09 14:03:12.337: W/dalvikvm(28914): Link of class 'Lcom/flurry/android/bg;' failed 
04-09 14:03:12.347: W/ClassPathPackageInfoSource(28914): Cannot load class. Make sure it is in your apk. Class name: 'com.flurry.android.bg'. Message: com.flurry.android.bg 
04-09 14:03:12.347: W/ClassPathPackageInfoSource(28914): java.lang.ClassNotFoundException: com.flurry.android.bg 
04-09 14:03:12.347: W/ClassPathPackageInfoSource(28914): at java.lang.Class.classForName(Native Method) 
04-09 14:03:12.347: W/ClassPathPackageInfoSource(28914): at java.lang.Class.forName(Class.java:217) 
04-09 14:03:12.347: W/ClassPathPackageInfoSource(28914): at android.test.ClassPathPackageInfoSource.createPackageInfo(ClassPathPackageInfoSource.java:88) 
04-09 14:03:12.347: W/ClassPathPackageInfoSource(28914): at android.test.ClassPathPackageInfoSource.access$000(ClassPathPackageInfoSource.java:39) 
04-09 14:03:12.347: W/ClassPathPackageInfoSource(28914): at android.test.ClassPathPackageInfoSource$1.load(ClassPathPackageInfoSource.java:50) 
04-09 14:03:12.347: W/ClassPathPackageInfoSource(28914): at android.test.ClassPathPackageInfoSource$1.load(ClassPathPackageInfoSource.java:47) 
04-09 14:03:12.347: W/ClassPathPackageInfoSource(28914): at android.test.SimpleCache.get(SimpleCache.java:31) 
04-09 14:03:12.347: W/ClassPathPackageInfoSource(28914): at android.test.ClassPathPackageInfoSource.getPackageInfo(ClassPathPackageInfoSource.java:72) 
04-09 14:03:12.347: W/ClassPathPackageInfoSource(28914): at android.test.ClassPathPackageInfo.getSubpackages(ClassPathPackageInfo.java:48) 
04-09 14:03:12.347: W/ClassPathPackageInfoSource(28914): at android.test.ClassPathPackageInfo.addTopLevelClassesTo(ClassPathPackageInfo.java:61) 
04-09 14:03:12.347: W/ClassPathPackageInfoSource(28914): at android.test.ClassPathPackageInfo.getTopLevelClassesRecursive(ClassPathPackageInfo.java:55) 
04-09 14:03:12.347: W/ClassPathPackageInfoSource(28914): at android.test.suitebuilder.TestGrouping.testCaseClassesInPackage(TestGrouping.java:156) 
04-09 14:03:12.347: W/ClassPathPackageInfoSource(28914): at android.test.suitebuilder.TestGrouping.addPackagesRecursive(TestGrouping.java:117) 
04-09 14:03:12.347: W/ClassPathPackageInfoSource(28914): at android.test.suitebuilder.TestSuiteBuilder.includePackages(TestSuiteBuilder.java:102) 
04-09 14:03:12.347: W/ClassPathPackageInfoSource(28914): at android.test.InstrumentationTestRunner.onCreate(InstrumentationTestRunner.java:366) 
04-09 14:03:12.347: W/ClassPathPackageInfoSource(28914): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4239) 
04-09 14:03:12.347: W/ClassPathPackageInfoSource(28914): at android.app.ActivityThread.access$1400(ActivityThread.java:139) 
04-09 14:03:12.347: W/ClassPathPackageInfoSource(28914): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1284) 
04-09 14:03:12.347: W/ClassPathPackageInfoSource(28914): at android.os.Handler.dispatchMessage(Handler.java:99) 
04-09 14:03:12.347: W/ClassPathPackageInfoSource(28914): at android.os.Looper.loop(Looper.java:137) 
04-09 14:03:12.347: W/ClassPathPackageInfoSource(28914): at android.app.ActivityThread.main(ActivityThread.java:4918) 
04-09 14:03:12.347: W/ClassPathPackageInfoSource(28914): at java.lang.reflect.Method.invokeNative(Native Method) 
04-09 14:03:12.347: W/ClassPathPackageInfoSource(28914): at java.lang.reflect.Method.invoke(Method.java:511) 
04-09 14:03:12.347: W/ClassPathPackageInfoSource(28914): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004) 
04-09 14:03:12.347: W/ClassPathPackageInfoSource(28914): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771) 
04-09 14:03:12.347: W/ClassPathPackageInfoSource(28914): at dalvik.system.NativeStart.main(Native Method) 
04-09 14:03:12.347: W/ClassPathPackageInfoSource(28914): Caused by: java.lang.NoClassDefFoundError: com/flurry/android/bg 
04-09 14:03:12.347: W/ClassPathPackageInfoSource(28914): ... 26 more 
04-09 14:03:12.347: W/ClassPathPackageInfoSource(28914): Caused by: java.lang.ClassNotFoundException: com.flurry.android.bg 
04-09 14:03:12.347: W/ClassPathPackageInfoSource(28914): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61) 
04-09 14:03:12.347: W/ClassPathPackageInfoSource(28914): at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 
04-09 14:03:12.347: W/ClassPathPackageInfoSource(28914): at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 
04-09 14:03:12.347: W/ClassPathPackageInfoSource(28914): ... 26 more 

Я пытался убедиться, что мое приложение проект был проверен в свойства-> Java Build Path-> Заказ и экспорт, но это не кажется, Сделать разницу.

Любая помощь оценена!

ответ

0

Если вы тестируете проект библиотеки необходимо выполнить следующие шаги, описанные в этом посте (со скриншотами): http://dtmilano.blogspot.ca/2012/04/android-testing-library-projects.html

+0

спасибо Diego за ваш ответ, но я не на самом деле тестирование проекта библиотеки. Проект, который я тестирую, просто использует проект библиотеки, и компоновщик жалуется на библиотеку в рамках этого проекта библиотеки. –

+0

Итак, «проект единичного тестирования» содержит тесты для «проекта приложения», который использует «проект библиотеки» в вашем примере? –

+0

Да, вы правы. –