0
我在爲Android項目加載單元測試時看到一些有趣的警告。正常運行應用程序時,我看不到這些錯誤。他們並沒有阻止我的單元測試運行,但他們關心的是。在Android單元測試期間無法連接外部庫
下面的錯誤日誌中提到的Flurry庫位於正在測試的項目的庫項目的libs目錄中。
下面介紹一下目錄結構如下:
- 應用項目
- 庫項目
- 庫
- FlurryAgent.jar
- 庫
- 單元測試PR oject
的錯誤是這樣的:
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的檢查構建路徑 - >訂單和出口,但是這似乎並沒有做出改變。
任何幫助表示讚賞!
感謝迭戈,但我沒有實際測試庫項目。我正在測試的項目恰好使用了一個庫項目,鏈接器正在抱怨該庫項目中的一個庫。 – 2013-04-09 22:38:10
因此'單元測試項目'包含了在你的例子中使用'庫項目'的'app項目'測試? – 2013-04-09 22:40:44
是的,你是對的。 – 2013-04-10 02:37:46