在我当前的项目中,我们的测试APK已经超过了64k方法限制。我们启用了multidex,所以在API> 19的设备上运行测试不会出现问题,但是在API 19上,运行器无法在第二个索引文件中找到类。
我已经尝试减少androidTestCompile的依赖,但最大的罪魁祸首是espresso,我需要。
对于运行在不支持多重索引的平台上的测试APK,是否存在索引限制?
在Android L之前,Dalvik运行时用于执行应用程序代码。要解决这个问题,您可以使用multidex支持库。
创建一个Java
类,这将是您的自定义testInstrumentationRunner
。
输入以下代码:
public class MultiDexAndroidJUnitRunner extends AndroidJUnitRunner {
@Override
public void onCreate(Bundle arguments) {
//To make it work on MultiDex environment.
//https://plus.google.com/+OleksandrKucherenko/posts/i7qZdVEy3Ue
MultiDex.install(getTargetContext());
super.onCreate(arguments);
}
}
打开应用程序的build.gradle
替换现有行:
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
与您的自定义类:
testInstrumentationRunner "com.mypackagename.test.MultiDexAndroidJUnitRunner"
希望能成功