测试apk multidexed将无法在api-19

时间:2016-08-26 15:20:49

标签: android android-testing android-espresso multidex android-multidex

在我目前的项目中,我们的测试APK已超过64k方法限制。  我们启用了multidex,因此在使用API​​>的设备上运行测试19,没有问题,但在API 19上,跑步者无法在第二个dex文件中找到类。

我曾尝试减少androidTestCompile依赖项,但最大的罪魁祸首是espresso,我需要它。

对于在本机上不支持multidex的平台上运行的测试APK,有没有解决dex限制的工作?

2 个答案:

答案 0 :(得分:1)

在Android L之前,Dalvik运行时用于执行应用程序代码。要解决此问题,您可以使用multidex support library

Read more here

答案 1 :(得分:1)

创建一个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"

希望它能运作