androidTest与gradle插件3.0.0的Multidex问题

时间:2017-11-15 14:15:48

标签: android gradle android-gradle build.gradle gradle-plugin

将我的应用更新为gradle插件3.0.0后,我开始遇到multidex问题,但只有在我运行androidTest时才会出现问题。

我的应用已经是multidex,并且使用gradle插件2.3.3 assembleDebugassembleDebugAndroidTest工作正常。然后我刚刚将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有类似的问题?

1 个答案:

答案 0 :(得分:4)

我认为这是一个众所周知的问题:https://issuetracker.google.com/issues/37324038

问题是Android Grast插件3.0.0 for androidTest APK中不支持传统multidex(min API< 21)。我能够通过使用min API> = 21制作产品风味来实现它:

productFlavors {
    local {
        minSdkVersion 21
    }
    ci {
        minSdkVersion 17
    }
}

然后使用connectedLocalDebugAndroidTest任务运行androidTests