【问题标题】:Android: Test running failed: Instrumentation run failed due to 'java.lang.IncompatibleClassChangeError'Android:测试运行失败:仪器运行因“java.lang.IncompatibleClassChangeError”而失败
【发布时间】:2015-11-18 23:08:25
【问题描述】:

我有一些包含多个单元测试的项目。 当我尝试在 Android Studio 中或使用gradle clean connectedCheck 从终端执行测试时,出现以下错误:Test running failed: Instrumentation run failed due to 'java.lang.IncompatibleClassChangeError' 它在 Android 5.x 设备上重现,但在 4.x 上没有错误发生。 但是,如果我尝试在 Android Studio 中运行单独的测试包、套件、类或某些测试,测试会顺利进行。

我不明白为什么。我需要从终端执行测试

build.gradle 文件:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 18
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "com.xxx.yyy"
        minSdkVersion 9
        targetSdkVersion 18

        testApplicationId "com.xxx.zzz.tests"
        testInstrumentationRunner "android.test.InstrumentationTestRunner"
    }

    packagingOptions {
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/NOTICE'
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
    sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
    }
}

repositories {
    mavenLocal()

    jcenter()
    mavenCentral()
}

android {
    lintOptions {
        abortOnError false
    }
}

dependencies {
    testCompile 'junit:junit:4.12'

    compile fileTree(dir: 'libs', include: '*.jar')
}

有人有什么建议吗?

【问题讨论】:

    标签: android unit-testing gradle automated-tests


    【解决方案1】:

    这取决于您包含哪些库。就我而言,当我包含 espresso.contrib 库时遇到了这个问题。

    你可以尝试做这样的事情。https://stackoverflow.com/a/29423456/5280584

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-03
      • 2015-01-29
      • 1970-01-01
      • 2016-02-11
      • 2022-07-09
      • 1970-01-01
      • 2021-07-13
      相关资源
      最近更新 更多