2016-05-22 16 views
1

で特定のクラスを除外するために、どのように私はAndroidののGradleは、風味ビルドAPK

1クラス私は味の二つに必要がありますが、もう一つは、それを実装してはならないための3つの味とPROJEKTを持っています。

このJavaクラスを1つのフレーバに対してのみ除外する方法はありますか、他の2つのフレーバでクラスを移動してこのようにレンダントコードを取得する必要がありましたか?

答えて

1

コンパイルしたくないソースがある場合は、クラスファイルではなくソース用のフィルタを宣言する必要があります。

だからあなたのGradleの構成は以下のようになります:

SetOfSources { 
    main { 
     java { 
      include 'com/macao/somePackage/activityAdapter/**' 
      include 'com/macao/someOtherPackage/**' 
      exclude 'com/macao/someOtherPackage/pollingAdapter/**' 
      exclude 'com/macao/someOtherPackage/matchingAdapter/**' 
     } 
    } 
} 
0

確かに、メインと呼ばれる変わらないフレーバーがあります。プロジェクトファイルの構造をチェックすると、srcフォルダの中にメインフォルダがあることに気づくはずです。このメインはあなたの主要な味を表し、あなたの共有コードのほとんどはそこにあるはずです。各フレーバーはメインとマージしているからです。

次に、メインフォルダが存在するパスに同じ名前の新しいフォルダを作成します。

両方のクラスをフレーバーにコピーし、ビルドバリアントを変更して使用する準備ができました。あなたがついていれば、気軽にコメントしてください。

ありがとうございます。

関連する問題