Java Android:WireMock:com.Android.dex.DexIndexOverflowException:方法ID不在[0,0xffff]:65536中

Java Android:WireMock:com.Android.dex.DexIndexOverflowException:方法ID不在[0,0xffff]:65536中,java,android,android-studio,android-multidex,wiremock,Java,Android,Android Studio,Android Multidex,Wiremock,Gradle 3.3,WireMock 2.6.0。 我由Gradle构建我的Android项目。我用浓缩咖啡、Mockito编写单元测试,一切都很好 这是我的身材。格雷德尔: dependencies { // for folder "androidTest" androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2' androidTestCompile "org.mockito

Gradle 3.3,WireMock 2.6.0。 我由Gradle构建我的Android项目。我用浓缩咖啡、Mockito编写单元测试,一切都很好

这是我的身材。格雷德尔:

dependencies {
    // for folder "androidTest"
    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'

    // for folder "test"
    testCompile 'junit:junit:4.12'
    testCompile 'org.powermock:powermock-api-mockito:1.6.6'
    testCompile 'org.powermock:powermock-module-junit4:1.6.6'
    }
我的项目是成功构建和单元测试成功运行。好啊 现在我想添加WireMock单元测试。因此,我更改了build.gradle(如本博客所示:):

当我运行我的应用程序时,一切正常。但是,当我尝试为Android启动插入仪器的单元测试时,我遇到了下一个错误:

    :app:compileDevAndroidTestShaders
:app:generateDevAndroidTestAssets
:app:mergeDevAndroidTestAssets
:app:transformClassesWithDexForDevAndroidTest FAILED

FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':app:transformClassesWithDexForDevAndroidTest'.
com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED

当访问索引大于64K(Dex方法计数限制)的方法时,会发生DexIndexOverFlowException。这意味着您的android项目中方法计数(引用)的实际数量大于64K,并且应用程序的最终.dex文件将拆分为多个dex文件。在这种情况下,应通过以下方式使应用程序支持multidex:

1-添加多索引依赖项:

    compile 'com.android.support:multidex:1.0.1'
2-将以下配置添加到app/build.gradle:

    android {

      defaultConfig {

          multidexEnabled true
       }
    }
3-创建自定义应用程序类以扩展
MultiDexApplication

public MyApplication extends MultiDexApplication
4-在
AndroidManifest.xml
中,将此自定义类作为应用程序的入口点:

    <application
    android:name=".MyApplication"

当访问索引大于64K(Dex方法计数限制)的方法时,会发生DexIndexOverFlowException。这意味着您的android项目中方法计数(引用)的实际数量大于64K,并且应用程序的最终.dex文件将拆分为多个dex文件。在这种情况下,应通过以下方式使应用程序支持multidex:

1-添加多索引依赖项:

    compile 'com.android.support:multidex:1.0.1'
2-将以下配置添加到app/build.gradle:

    android {

      defaultConfig {

          multidexEnabled true
       }
    }
3-创建自定义应用程序类以扩展
MultiDexApplication

public MyApplication extends MultiDexApplication
4-在
AndroidManifest.xml
中,将此自定义类作为应用程序的入口点:

    <application
    android:name=".MyApplication"