2017-10-13 10 views
2

私は、Androidテストに接続されているgradleプロジェクトにライブラリモジュールを持っていますが、テストAPKはあまりにも多くのメソッドを参照しているため、複数行にする必要があります。Multidex Andoirdライブラリモジュール

接続されたAndroidテストのアプリケーション用にmultidexまたはProGuardを有効にする方法はありますか?

これは、ライブラリに直接ProGuardのを有効にしても意味がありませんが、唯一うまく働くだろうandroidTest設定、ためにそれを有効にする方法があります。

アプリケーションモジュール用にProGuardを有効にしているので、安全にこのライブラリモジュールに依存してアプリのAPKを構築することができます。

Multidexサポートライブラリの使用に関する情報しか見つけることができないため、この質問に対する解決策を探すのは難しかったです。私は一般的なアプリケーションのためにそれを有効にする方法を理解しています。

+0

私が知る限り、Proguardはコードの難読化にのみ使用されています。ここではProguardとのマルチディレーティングとの関連はありません。 –

+0

@ReazMurshed ProGuardはコードを難読化できますが、未使用のメソッドやクラスも削除できます。 https://developer.android.com/studio/build/shrink-code.html –

答えて

1

接続されたAndroidテストのアプリケーション用にmultidexまたはProGuardを有効にする方法はありますか?

はい、専用のテストビルドタイプを使用するテストでは、ProGuardを有効にすることができます。デフォルト値はdebugです。 次の例では、専用テストビルドタイプの名前はminifiedTestです。

android { 

    defaultConfig { 

     /* Your configs here. */ 

     // Specify the name of the dedicated test build type. 
     testBuildType 'minifiedTest' 
    } 

    buildTypes { 
     debug { 
      // Your debug configurations. 
     } 

     release { 
      // Your release configurations. 
     } 

     minifiedTest { 
      // Use this to get the initial configurations from another build type. 
      // Some of them will be overridden from the configurations specified in this build type. 
      // You can avoid to use this or you can get them from your release build type for example. 
      initWith(debug) 
      // Enable proguard. 
      minifyEnabled true 
      // Specify the proguard file. 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 
+0

提案していただきありがとうございます。残念ながら、この方法は、ライブラリが他のライブラリプロジェクトに依存している場合、新しいバージョンのgradle(4.1+)でいくつかの問題を引き起こします。 ライブラリモジュール用にmultidexを有効にしただけです。 –

関連する問題