将我的应用程序更新到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
有类似的问题吗?
最佳答案
我相信这是一个已知问题: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