2017-10-24 2 views
1

私は、例えば、3つの味のAndroidアプリを持っています。最初のものはfreeです。第2のフレーバーはpaidと呼ばれます。そして第3のフレーバーはb2bClientと呼ばれます。Javaファイルを2つの味のために保存し、私のアプリで他の人のためにそれを除外するにはどうすればいいですか?

freeproは、コードが重複しないように、Googleアナリティクスへの呼び出しを囲むヘルパークラスGoogleAnalyticsHelperがメインソースセットに含まれています(Googleアナリティクスにする)必要があります。しかし、b2bClientはライブラリを使用していません。 b2bClient APKのサイズを縮小するために、ライブラリをGradleの依存関係に含めることはしません。それは私が明白であるassembleB2bClientは、(ビルドシステムがちょうどcom.google.android.gms.analyticsからクラスを持っていない実行時にコンパイルエラーが発生し

私はフレーバが、このようなb2bClientときに、ソース・セットからGoogleAnalyticsHelperを除いてみました:。

sourceSets { 

    main { 
     android.productFlavors.all { flavor -> 
      if (flavor.name == "b2bClient") { 
       java.exclude("**/GoogleAnalyticsHelper.java") 
      } 
     } 
    } 

} 
どちらか、動作しませんでした。同じエラーを

は。それは、特定の風味のための主要なソースのセットからクラスを除外することは可能ですか?

+2

GoogleAnalyticsHelperクラスを含むライブラリを作成し、このライブラリモジュールをb2bClientフレーバではなく3つのフレーバに含めることをおすすめします。 –

+0

@SagarTrehanあなたのコメントを回答に変換すると、私はそれを受け入れるでしょう –

+0

投稿された答え。承認してください。 –

答えて

0

ライブラリモジュールを作成しGoogleAnalyticsHelperのコードが含まれてanalyticsを言う。今すぐ追加このanalyticsフレーバー専用ライブラリはanalyticsの動作が必要です。

this linkに従うと、特定のフレーバのみのライブラリが含まれます。

関連する問題