質問: AとBという2つのアプリを作成したい。 また、それぞれのアプリを会社Zと会社Yに向けて作成したい。 (つまりA-Z, A-Y, B-Z, B-Yという4つのアプリが作成したい) こういった場合に、flavor機能を利用すると良いとの記事を見たので使ってみたのですが なかなか上手く行かないのでご教示ください。 それぞれのアプリにはLoginActivityを実装しており、ログイン後遷移するActivityをアプリ毎に分けるつもりでいます。 イメージとしては以下のようになります。 ``` src AZ res 略... layout activity_main.xml AY res 略... layout activity_main.xml BZ res 略... layout activity_main.xml BY res 略... layout activity_main.xml main res 略... layout activity_login.xml java jp.co.test.testApp(パッケージ) LoginActivity AMainActivity(Aアプリのログイン後アクティビティ) BMainActivity(Bアプリのログイン後アクティビティ) ``` flavorを以下のように設定しました。 ``` productFlavor { AZ { } AY { } BZ { } BY { } } ``` この状況でBuildVariantsより、例えばAZを選択した場合、BMainActivityでエラーが発生します。 内容は「シンボルを見つけられません」というエラーで、BMainActivityがコンパイルされてAのレイアウトファイルの中からリソースを探しているためだと思われます。 AZを選択した場合はBMainActivityをコンパイルしない、またはBMainActivityのコンパイル時にBのリソースを見る など、このエラーの回避方法はありますでしょうか。 共通処理が多いため、APKビルド時にのみアプリを分け、ソースは一か所管理としたいため、このような状況になっております。 以上、よろしくお願いします。
回答: resファイルと同階層にjavaフォルダを作り、そこにAMainActivityとBMainActivityを配置する必要があります。 ただ、共通処理を一ヶ所にまとめたいからflavorで解決するのは誤りな気がします。 共通処理をモジュール化してインポートすべきではないでしょうか。