Android,multiDexEnabled = true - >无法启动Espresso测试(NoClassDefFoundError)

时间:2017-04-27 14:15:41

标签: android-espresso

Android Studio 2.3.1。

我在“androidTest”文件夹中写了我的Espresso测试,它运行正常。 今天我在build.gradle中添加了新的依赖项。结果我在尝试启动单元测试时遇到错误:

  

错误:任务':app:transformClassesWithDexForDevAndroidTest'的执行失败。   com.android.build.api.transform.TransformException:com.android.ide.common.process.ProcessException:java.util.concurrent.ExecutionException:com.android.dex.DexIndexOverflowException:方法ID不在[0,0xffff]中: 65536

我通过(在build.gradle中)修复此问题:

android {
  ...
  defaultConfig {
    ...
    multiDexEnabled = true
  }

dependencies {
    compile 'com.android.support:appcompat-v7:23.0.0'
    compile 'com.android.volley:volley:1.0.0'

    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'
    androidTestCompile "org.mockito:mockito-android:2.7.21"
    androidTestCompile "org.powermock:powermock-api-mockito:1.6.6"
    androidTestCompile 'org.powermock:powermock-module-junit4:1.6.6'

    testCompile 'junit:junit:4.12'
    testCompile 'org.powermock:powermock-api-mockito:1.6.6'
    testCompile 'org.powermock:powermock-module-junit4:1.6.6'
    testCompile "org.mockito:mockito-core:+"

    //WireMock
    androidTestCompile("com.github.tomakehurst:wiremock:2.6.0") {
       exclude group: 'org.apache.httpcomponents', module: 'httpclient'
       exclude group: 'org.slf4j', module: 'slf4j-api'
       exclude group: 'org.ow2.asm', module: 'asm'
       exclude group: 'org.json', module: 'json'
    }
}

但是现在Espresso测试无法在Android 4.3上运行。我收到错误:

  

运行测试

     

com.myproject.fragment.MyTest #myTestMethod com.myproject.android.dev.test / android.support.test.runner.AndroidJUnitRunner       测试运行失败:由于'java.lang.NoClassDefFoundError'导致仪表运行失败           空测试套件。

我找到了问题的解决方案:

  1. 如果你使用Android 5.0-(例如Android 4.3),那么你必须使用Wiremock版 2.0.8-beta

    androidTestCompile'c​​om.github.tomakehurst:wiremock:2.0.8-beta'

  2. 如果你使用Android 5.0+,你可以使用任何Wiremock版本(例如2.5.0)

  3. androidTestCompile 'com.github.tomakehurst:wiremock:2.6.0'

    P.S。也许这是一个Multidex问题。

0 个答案:

没有答案