2017-12-08 5 views
0

私のアプリケーションにはOkHttpが使用されており、ログにはOkHttp interceptorを追加します。ご覧のとおり、私はOkHttp interceptorをリリース用ではなくデバッグ用apkにインポートしたいだけです。デバッグ用のライブラリをインポートするだけで、リリース用ではありません

if (BuildConfig.DEBUG) { 
     HttpLoggingInterceptor logging = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { 
      @Override 
      public void log(String message) { 
       Log.i(TAG, message); 
      } 
     }); 
     logging.setLevel(HttpLoggingInterceptor.Level.HEADERS); 
     mOkHttpClient = new OkHttpClient.Builder().addInterceptor(logging).build(); 
    }else { 
     mOkHttpClient = new OkHttpClient(); 
    } 

私は./gradlew assembleReleaseを呼び出すとき、私はimport import okhttp3.logging.HttpLoggingInterceptor;

はそれを行うにはどのような方法があるので、それが失敗したがdebugImplementation 'com.squareup.okhttp3:logging-interceptor:3.9.1'を使用していますか?ありがとうございます。

編集

質問Import library only for debuggingが私のために動作しません。あなたのGradleで

+0

[Stdoをデバッグビルドバリアントにのみ含める]の可能な複製(https://stackoverflow.com/questions/30172308/include-stetho-only-in-the-debug-build-variant) – Nawrez

+0

明らかに問題は解決しない私のために。 @HadjKhelilNawrez – CoXier

+0

私はokhttp3が正方形で非推奨と思われます –

答えて

1

のGradle 3.0では
compileDebug 'library' 

ない確かに

compile 'library' 

を交換するが、それはimplementationDebug/apiDebug

だと思うしかし、リリースのコードはコンパイルされません。

'main/java'にライブラリ固有でないものを委譲するインターフェイスを作成し、 'debug/java'フォルダを作成して実装するファイルを作成するという方法がありますライブラリとのインターフェイスは、代わりにコードから呼び出すこのデバッグは、フレーバデバッグコンパイルに固有です。ここではエラーなしでリリースとしてコンパイルするには、 'release/java'に同じ名前のクラスを空の実装で指定することができます(クラス#forNameで参照する必要があり、デバッグでのみ機能します)

+0

私はちょうど私の質問を更新します。 – CoXier

+0

あなたの問題を解決できる編集 –

+0

その味についてのデバッグとリリース –

関連する問題