IntelliJ IDEA 2019.1ヘルプ

ライブラリープロジェクトを使用したAndroidソースコードとリソースの共有

IntelliJ IDEAは、共有Androidソースコードとリソースを保持するAndroid ライブラリープロジェクトをサポートします。他のAndroidアプリケーションプロジェクトは、ライブラリープロジェクトを参照し、ビルド時に .apk ファイルにそのコンパイル済みソースを含めることができます。

IntelliJ IDEAでは、ライブラリープロジェクトは別々のライブラリーモジュールを介してサポートされています。

Androidのソースコードとリソースを共有するには、次のいずれかの操作を行います。

  • 新しいライブラリーモジュールを作成します。

  • 共有するソースを含むアプリケーションモジュールをライブラリーモジュールに変換します。

このトピックの内容:

ライブラリーモジュールの作成

  1. 以下のいずれか 1 つを実行します:
  2. ウィザードの最初のページで、左側のウィンドウでAndroidを選択し、右側のウィンドウでライブラリー・モジュールを選択します。

  3. ウィザードを完了します。

アプリケーションモジュールをライブラリーモジュールに変換する

Androidファセットを更新することによって、アプリケーションモジュールをライブラリーモジュールに変換することができます。

  1. メインメニューからファイル | プロジェクト構造を選択して、プロジェクト構造ダイアログを開きます。

  2. 左側のペインでモジュールを選択します。中央ペインで、ライブラリーモジュールにするモジュールのノードを展開し、Androidをクリックします。

  3. 右側のペインで、Androidファセットページの上にあるライブラリー・モジュールチェックボックスを選択します。

別のプロジェクトでライブラリーモジュールを使用する

別のプロジェクトでライブラリーモジュールを使用するには、このモジュールをそのモジュールにインポートする必要があります。

  1. メインメニューからファイル | 新規 | 既存ソースからモジュールを選択します。

  2. 表示されたダイアログで、インポートする iml モジュールファイルを参照し、OKをクリックします。モジュールノードがツリービューに追加されます。

  3. インポートされたライブラリーモジュールの依存関係を、データが使用されるモジュールに追加します。
    1. 非ライブラリーモジュールの設定を開きます:ファイル | プロジェクト構造にナビゲートし、左ペインでモジュールを選択し、中央ペインで非ライブラリーモジュールを選択します。

    2. 右側のウィンドウで、依存関係タブに切り替えます。右のツールバーの追加ボタン icons general add svg をクリックし、コンテキストメニューからモジュール依存関係を選択します。

    3. 表示されたモジュールの選択ダイアログボックスで、リストからインポートしたライブラリーモジュールを選択し、OKをクリックします。

ライブラリーモジュールのAndroidManifest.xmlからアプリケーション全体のAndroidManifest.xmlへのデータの追加

ライブラリーモジュールを別のアプリケーションに正常に統合するには、そのコンポーネントをアプリケーション AndroidManifest.xml ファイルで宣言する必要があります。マニフェストファイルには、アプリケーションの実行に必要な情報が含まれています(詳細はApp Manifestを参照)。この情報をライブラリーモジュールに手動で追加するか、ライブラリーモジュールの AndroidManifest.xml から抽出して、アプリケーションの AndroidManifest.xml に自動的に追加することができます。

第2のアプローチは、マージマニフェストと呼ばれます。

ライブラリーモジュールのマニフェストをアプリケーションマニフェストと自動的にマージさせるには:

  1. メインメニューからファイル | プロジェクト構造を選択して、プロジェクト構造ダイアログを開きます。

  2. 左側のペインでモジュールを選択します。中央ペインで非ライブラリーモジュールを展開し、そのノードのAndroidファセットをクリックします。

  3. 右ペインのAndroidファセットページで、パッケージングタブに切り替えて、マジゲストマージを有効にするオプションを選択します。

ライブラリーモジュールの.dexファイルを再構築せずにアプリケーション全体の.apkに含める (pre-dexing)

アプリケーションのパッケージ化中、ライブラリーモジュールの class ファイルは .dex ファイルに変換されます。この操作はデクシングと呼ばれます。最後に、ライブラリーモジュールから出力された .dex ファイルは、最終的なアプリケーション .apk に含まれています(ビルドと実行からのビルド手順の詳細は、こちらを参照してください)。

原則として、ライブラリーモジュールの内容は変更されません。この場合、dexed を一度だけ持つことができます。その結果、出力 .dex ファイルは .apkに含まれます。このアプローチはpre-dexingと呼ばれます。

デフォルトでは、IntelliJ IDEAは前回のビルド以降に更新されていない外部 jars と同様にライブラリーモードの依存関係を事前定義します。すべての class ファイルが常にdexされるようにこれらの設定を変更することができます。

  1. メインメニューからファイル | プロジェクト構造を選択して、プロジェクト構造ダイアログを開きます。

  2. 左側のペインでモジュールを選択します。中央ペインで非ライブラリーモジュールを展開し、そのノードのAndroidファセットをクリックします。

  3. 右ペインのAndroidファセットページで、パッケージングタブに切り替えて、外部 jar および Android ライブラリーの依存関係を Pre-dex するオプションを選択します。

最終更新日: 2019年6月20日

関連事項