将我的应用程序更新到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有类似的问题吗?

最佳答案

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

问题是,专门针对androidTest APK的Android Gradle插件3.0.0不支持旧版multidex(最小API = 21使产品具有 flavor 来使其工作,如下所示:

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

然后使用connectedLocalDebugAndroidTest任务运行androidTests

07-24 09:46
查看更多