运行Multidexed Espresso .APK

时间:2017-05-03 10:03:05

标签: android android-espresso multidex

使用./gradlew connectedDebugAndroidTest运行Espresso测试时,我们遇到了此问题:

  

com.android.build.api.transform.TransformException:   com.android.ide.common.process.ProcessException:   java.util.concurrent.ExecutionException:   com.android.dex.DexIndexOverflowException:方法ID不在[0,   0xffff]:65536

由于我们在主应用程序中使用Multidex并且仅在已测试的测试中添加Espresso依赖项,因此我们无法理解为什么它不起作用:·(此外,如果我们通过IntelliJ运行测试Gradle,它起作用:·|

顺便说一句,我们需要通过Gradle运行它们以在CI工具上自动化它们。

更多信息? Google问题跟踪器上有相关问题的链接:https://issuetracker.google.com/issues/37017515:悲伤:

1 个答案:

答案 0 :(得分:3)

任务connectedDebugAndroidTest将尝试为项目中的每个模块构建测试apks,因此如果您的项目有多个模块,则需要在每个模块中启用multidex。这通常是设置

android.defaultConfig.multiDexEnabled true
每个模块在build.gradle

如果您不尝试执行任务中的任务,则可以跳过所有这些没有任何测试的模块。例如,如果只有app模块具有检测测试,则可以执行app:connectedDebugAndroidTest以避免可能的多索错误。这实际上是Android Studio默认创建的运行配置,也可能是您从IDE启动测试时运行良好的原因。