私は、例えば、3つの味のAndroidアプリを持っています。最初のものはfree
です。第2のフレーバーはpaid
と呼ばれます。そして第3のフレーバーはb2bClient
と呼ばれます。Javaファイルを2つの味のために保存し、私のアプリで他の人のためにそれを除外するにはどうすればいいですか?
free
とpro
は、コードが重複しないように、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")
}
}
}
}
どちらか、動作しませんでした。同じエラーを
は。それは、特定の風味のための主要なソースのセットからクラスを除外することは可能ですか?
GoogleAnalyticsHelperクラスを含むライブラリを作成し、このライブラリモジュールをb2bClientフレーバではなく3つのフレーバに含めることをおすすめします。 –
@SagarTrehanあなたのコメントを回答に変換すると、私はそれを受け入れるでしょう –
投稿された答え。承認してください。 –