【问题标题】:NoClassDefFoundError on Espresso Tests浓缩咖啡测试中的 NoClassDefFoundError
【发布时间】:2014-07-15 00:15:00
【问题描述】:

我能够让 robotsium 测试在我们的应用上运行,但现在我在使用 Espresso 时遇到了问题。我收到“测试运行失败:由于 'java.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')”和“androidTestCompile 文件('libs/espresso-contrib-1.1-bundled.jar')”不一致有关彼此,但不知道如何绕过它。有什么帮助吗?

【问题讨论】:

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


    【解决方案1】:

    问题是库 log4j 冲突。

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

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

    【讨论】:

    • 我有一个非常相似的问题,删除 logback 是解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多