複数のプロジェクトをビルドするように gradle ファイルを構成するための Google の Gradle プラグイン推奨方法には、いくつかの欠点があります。 Android Studio でのマルチプロジェクト セットアップのサポート:
Android Studio の代替マルチプロジェクト設定
別の方法:
Android Studio で複数のプロジェクトを管理するためのより良い方法があることがわかりました。秘訣は、ライブラリ用に個別の Android Studio プロジェクトを作成し、アプリが依存するライブラリのモジュールがライブラリのプロジェクト ディレクトリにあることを gradle に伝えることです。上記のプロジェクト構造でこの方法を使用する場合は、次のようにします。
- StickyListHeaders ライブラリの Android Studio プロジェクトを作成する
- App2 の Android Studio プロジェクトを作成する
- App1 の Android Studio プロジェクトを作成する
- StickyListHeaders プロジェクトでモジュールをビルドするように App1 と App2 を構成します。
4 番目のステップは難しい部分なので、詳細に説明するのは 4 番目のステップだけです。プロジェクトのディレクトリの外部にあるモジュールを参照するには、settings.gradle ファイルに project ステートメントを追加し、その project ステートメントによって返される ProjectDescriptor オブジェクトに projectDir プロパティを設定します。
入れなければならないコードsettings.gradle
:
include ':library1'
project(':library1').projectDir = new File('../StickyListHeader/library1')
これを正しく行うと、プロジェクトによって参照されているモジュールが、プロジェクト ディレクトリの外部にある場合でも、プロジェクト ナビゲーターに表示されることに気付くでしょう。
これにより、ライブラリ コードとアプリ コードを同時に処理できます。このように外部からモジュールを参照する場合も、バージョン管理の統合は問題なく機能します。変更をコミットしてアプリ コードにプッシュできるのと同じように、変更をライブラリ コードにコミットしてプッシュできます。
複数のプロジェクトを設定するこの方法により、Google の推奨構成を悩ませている問題を回避できます。プロジェクト ディレクトリの外部にあるモジュールを参照しているため、ライブラリ モジュールに依存するすべてのアプリに対してライブラリ モジュールの追加のコピーを作成する必要はなく、git サブモジュールのナンセンスなしでライブラリをバージョン管理できます。
残念ながら、複数のプロジェクトをセットアップするこの別の方法を見つけるのは非常に困難です。明らかに、これは Google のガイドを見て理解できるものではなく、現時点では、Android Studio の UI を使用してこの方法でプロジェクトを構成する方法はありません。