Androidでは、main/
ソースセットとディレクトリを、全てのビルドバリアントで共通して使用します。
新しいソースセット(ディレクトリ)を作成して、
特定のビルドバリアントごとにGradle でコンパイル&パッケージ化するファイルを管理できます。
ビルドバリアントごとに使用するファイルを確認する
- 画面右側の
Gradle
を選択 - ApplicationName > Tasks > android まで階層を開き、
sourceSets
をダブルクリック
Gradleがタスク実行し、ビルドバリアントごとに使用しているファイルを表示します。
ビルドバリアントごとに使用するファイルを切り替える
さて、確認ができたところで、実際に切り替えていきましょう。
Gradleでは、main/
ソースセットと同じように特定のディレクトリを管理する必要があります。
具体例
例えば、以下のようにします。
debug
ビルドタイプでのみ使いたいJavaファイルがある場合、src/debug/java
ディレクトリに配置しなければなりません。
設定の方法
AndroidStudioには、便利な機能が備わっています。
自分の手でディレクトリ分けするのも良いですが、楽しちゃいましょう。
実際に上記の具体例に沿って設定していきます。
- Projectペインを開く
- ペインの上部にあるプルダウンメニューから、
(プロジェクト名)/app/src
の階層まで開く - srcディレクトリで右クリック > New > Foloder > JavaFolder
Target Source Set
の横にあるプルダウンメニューからdebug
を選択Finish
をクリック
すると、debug/java
が作成されます!
【補足】手動で設定する方法
一応、ツールを使用せずに行う方法をあります。build.gradle(Module :app)
に下記を追加します。
// リソースの切り替え
sourceSets {
develop {
java.srcDirs = ['src/develop/java']
}
product {
java.srcDirs = ['src/product/java']
}
}
サバ缶
それぞれのディレクトリ(develop, product)を
忘れず作成しておきましょう!
まとめ
ビルドフレーバによって使用するソースを切り替える方法は、主に2つあることがわかりました。
- ツールを使って簡単に行う
- モジュールの
build.gradle
に記述し、ディレクトリも自分で作成する
あなたにあった方法でお試しください。
参考記事
ビルド バリアントを設定する | Android デベロッパー | Android Developers
単一のプロジェクトからさまざまなバージョンのアプリを作成するためのビルド バリアントの設定方法をご確認ください。