androidTest与gradle插件3.0.0的Multidex问题

bra*_*ior 7 android gradle build.gradle android-gradle-plugin gradle-plugin

一旦我将我的应用程序更新为gradle插件3.0.0,我开始遇到multidex问题,但只有当我运行时androidTest.

我的应用程序已经是multidex和gradle插件2.3.3,assembleDebug并且assembleDebugAndroidTest工作正常.然后我刚刚将gradle插件更新到3.0.0,我开始收到以下异常:

com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536

我尝试了不同的选项,例如为测试定义自定义multidex运行器,添加androidTestCompile 'com.android.support:multidex-instrumentation:1.0.2'依赖项,但没有任何帮助.我也没有在gradle插件3.0.0的发行说明中找到,如果有什么东西改变为Android测试.

有没有人有类似的问题androidTest

Sti*_*Br0 5

我相信这是一个已知问题:https : //issuetracker.google.com/issues/37324038

问题是 Android Gradle 插件 3.0.0 不支持旧版 multidex(最小 API < 21),专门用于 androidTest APK。我能够通过使用 min API >= 21 制作产品风味来使其工作,如下所示:

productFlavors {
    local {
        minSdkVersion 21
    }
    ci {
        minSdkVersion 17
    }
}
Run Code Online (Sandbox Code Playgroud)

然后使用 connectedLocalDebugAndroidTest 任务运行 androidTests