4

Auf meinem aktuellen Projekt unsere Test APK laufen hat sich über die 64k Methode Grenze gewachsen. Wir haben multidex aktiviert, so dass Tests auf einem Gerät mit API> 19 keine Probleme verursachen, aber auf der API 19 kann der Runner keine Klassen in der zweiten Dex-Datei finden.Test-apk multidexed nicht auf api-19

Ich habe versucht, die androidTestCompile Abhängigkeiten zu reduzieren, aber der größte Übeltäter ist Espresso, die ich brauche.

Gibt es Workarounds für die dex Grenze für die APK-Test auf Plattformen ausgeführt werden, die nicht native multidex unterstützen?

+0

Mögliche Duplikate von [Android-Unterstützung MultiDex-Bibliothek-Implementierung] (http://StackOverflow.com/Questions/26925264/android-Support-Multidex-Library-Implementation) –

Antwort

1

Vor Android L wird Dalvik Laufzeit für die Ausführung App-Code verwendet. Um es zu umgehen, können Sie die multidex support library verwenden.

Read more here.

+0

Ich habe Multidex aktiviert und es funktioniert für die haupt apk ich kann die anwendung auch auf dalvik gut, aber nicht die test apk kann nicht die androidtests laufen –

0

erstellen Java Klasse, die Ihre benutzerdefinierten testInstrumentationRunner sein würde.

diesen Code in sie setzen:

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 

mit Ihren benutzerdefinierten Klasse:

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

ersetzen bestehende Linie der App öffnen

testInstrumentationRunner "com.mypackagename.test.MultiDexAndroidJUnitRunner" 

Hoffe, es wird funktionieren