4

私の現在のプロジェクトでは、テストAPKが64kのメソッド制限を超えて成長しました。 私たちはmultidexを有効にしているので、API> 19のデバイスでテストを実行することは問題ありませんが、API 19ではランナーは2番目のdexファイルでクラスを見つけることができません。apk-multidexedがapi-19で実行されない

私はandroidTestCompileの依存関係を減らそうとしましたが、最大の原因はエスプレッソです。

multidexをネイティブにサポートしていないプラットフォームで実行されているテストAPKのデックス制限の回避策はありますか?

+0

[Androidサポートマルチデックスライブラリの実装](http://stackoverflow.com/questions/26925264/android-support-multidex-library-implementation)の可能な複製 –

答えて

1

Android Lより前のバージョンでは、Dalvikランタイムがアプリケーションコードの実行に使用されています。この問題を回避するには、multidex support libraryを使用します。

Read more here

+0

私はmultidexを有効にしています。私はDalvikでもアプリケーションを正常に動作させることができますが、テストAPKはアンドロイドテストを実行できません –

0

Javaクラスを作成します。カスタムはtestInstrumentationRunnerです。

それにこのコードを入れてください:あなたのカスタムクラスと

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

testInstrumentationRunner "com.mypackagename.test.MultiDexAndroidJUnitRunner" 
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

を開きますこれはうまくいくはずです

関連する問題