Espresso测试中的NoClassDefFoundError

时间:2014-07-15 00:15:01

标签: java android log4j android-gradle android-espresso

我能够让机器人测试在我们的应用程序上运行,但现在我遇到了Espresso的问题。我得到"测试运行失败:由于&java; Lang.lang.NoClassDefFoundError"

,仪器运行失败
   java.lang.NoClassDefFoundError: org.apache.log4j.lf5.viewer.categoryexplorer.CategoryNodeRenderer
        at java.lang.Class.classForName(Native Method)
        at java.lang.Class.forName(Class.java:305)
        at android.test.ClassPathPackageInfoSource.createPackageInfo(ClassPathPackageInfoSource.java:88)
        at android.test.ClassPathPackageInfoSource.access$000(ClassPathPackageInfoSource.java:39)
        at android.test.ClassPathPackageInfoSource$1.load(ClassPathPackageInfoSource.java:50)
        at android.test.ClassPathPackageInfoSource$1.load(ClassPathPackageInfoSource.java:47)
        at android.test.SimpleCache.get(SimpleCache.java:31)
        at android.test.ClassPathPackageInfoSource.getPackageInfo(ClassPathPackageInfoSource.java:72)
        at android.test.ClassPathPackageInfo.getSubpackages(ClassPathPackageInfo.java:48)
        at android.test.ClassPathPackageInfo.addTopLevelClassesTo(ClassPathPackageInfo.java:61)
        at android.test.ClassPathPackageInfo.getTopLevelClassesRecursive(ClassPathPackageInfo.java:55)
        at android.test.suitebuilder.TestGrouping.testCaseClassesInPackage(TestGrouping.java:156)
        at android.test.suitebuilder.TestGrouping.addPackagesRecursive(TestGrouping.java:117)
        at android.test.suitebuilder.TestSuiteBuilder.includePackages(TestSuiteBuilder.java:102)
        at android.test.InstrumentationTestRunner.onCreate(InstrumentationTestRunner.java:366)
        at com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner.onCreate(GoogleInstrumentationTestRunner.java:114)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4319)
        at android.app.ActivityThread.access$1500(ActivityThread.java:135)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:136)
        at android.app.ActivityThread.main(ActivityThread.java:5001)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)

有任何帮助吗? 这是我的gradle文件:

dependencies {
    compile 'com.google.android.gms:play-services:5.0.+@aar'
    compile 'com.android.support:support-v13:20.0.+'
    compile 'com.android.support:appcompat-v7:19.+'
    androidTestCompile files('libs/espresso-contrib-1.1-bundled.jar')
    compile files('libs/android-logging-log4j-1.0.3.jar')
    compile files('libs/FiksuAndroidSDK_2.1.2.jar')
    compile files('libs/gcm.jar')
    compile files('libs/internal.jar')
    compile files('libs/log4j-1.2.17.jar')
    compile files('libs/MobileAppTracker.jar')
    wearApp project(":wearable")
}

我使用的是Android Studio,而且我没有单独的测试项目。我认为它与"编译文件(' libs / log4j-1.2.17.jar')"有关。和#34; androidTestCompile文件(' libs / espresso-contrib-1.1-bundled.jar')"彼此不和,但不知道如何绕过它。有帮助吗?

1 个答案:

答案 0 :(得分:2)

问题是一个冲突的库,log4j。

删除了这一行和相应的.jar文件,一切都很顺利。

compile files('libs/android-logging-log4j-1.0.3.jar')