167

私はgradleビルドシステムとIntelliJが初めてです。

では、Android ライブラリ プロジェクト (com.myapp.lib1 など) とアプリケーション プロジェクト (com.myapp.app など) を作成し、ビルド システムにアプリケーション プロジェクトに com.myapp.lib1 を含めるにはどうすればよいでしょうか。

Project Structure -> Modules -> My App プロジェクトに移動し、lib プロジェクトに依存関係を追加しました。アプリ プロジェクトで使用すると、IntelliJ は lib プロジェクトのクラスを認識できるようになりましたが、アプリ プロジェクトを実行すると、次のようなエラーが発生します。

Gradle: error: package com.myapp.lib1 does not exist
4

14 に答える 14

116

スタンドアローンのjarプロジェクトの例がないのはなぜだろうか。

Eclipse では、プロジェクト設定ダイアログで「Is Library」ボックスをチェックするだけです。
Android studio では、この手順に従って jar ファイルを取得しました。

  1. プロジェクトを作成します。

  2. 左側のプロジェクト メニューでファイルを開きます。(app/build.gradle): Gradle Scripts > build.gradle(Module: XXX)

  3. 1行変更: apply plugin: 'com.android.application'->'apply plugin: com.android.library'

  4. ファイル内の applicationId を削除します。applicationId "com.mycompany.testproject"

  5. プロジェクトのビルド:ビルド > プロジェクトの再ビルド

  6. その後、aar ファイルを取得できます:アプリ > ビルド > 出力 > aar フォルダー

  7. aarファイル拡張子名をに変更zip

  8. 解凍するとclasses.jar、フォルダに表示されます。改名して使おう!

とにかく、GoogleがAndroidスタジオでjarの作成を面倒にする理由がわかりません。

于 2015-05-18T05:40:41.970 に答える
111

ライブラリを作成するには:

ファイル > 新しいモジュール

Android ライブラリを選択

リブ

ライブラリを使用するには、依存関係として追加します。

ファイル > プロジェクト構造 > モジュール > 依存関係

出発地

次に、モジュール (Android ライブラリ) をモジュールの依存関係として追加します。

モジュールを追加

プロジェクトを実行します。それうまくいきます。

于 2013-05-17T20:26:07.443 に答える
98

複数のプロジェクトをビルドするように gradle ファイルを構成するための Google の Gradle プラグイン推奨方法には、いくつかの欠点があります。 Android Studio でのマルチプロジェクト セットアップのサポート:

Android Studio の代替マルチプロジェクト設定

別の方法:

Android Studio で複数のプロジェクトを管理するためのより良い方法があることがわかりました。秘訣は、ライブラリ用に個別の Android Studio プロジェクトを作成し、アプリが依存するライブラリのモジュールがライブラリのプロジェクト ディレクトリにあることを gradle に伝えることです。上記のプロジェクト構造でこの方法を使用する場合は、次のようにします。

  1. StickyListHeaders ライブラリの Android Studio プロジェクトを作成する
  2. App2 の Android Studio プロジェクトを作成する
  3. App1 の Android Studio プロジェクトを作成する
  4. 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 を使用してこの方法でプロジェクトを構成する方法はありません。

于 2015-07-12T10:05:57.730 に答える
45

マルチプロジェクトのセットアップに関するこのリンクを確認してください。

指摘すべき点として、settings.gradle がアプリ モジュールとライブラリ モジュールの両方を参照するように更新されていることを確認してください。

settings.gradle:include ':app', ':libraries:lib1', ':libraries:lib2'

また、アプリの build.gradle に次のものが含まれていることを確認してください。

dependencies {
     compile project(':libraries:lib1')
}

次の構造が必要です。

 MyProject/
  | settings.gradle
  + app/
    | build.gradle
  + libraries/
    + lib1/
       | build.gradle
    + lib2/
       | build.gradle

アプリの build.gradle はcom.android.applicationプラグインを使用する必要があり、ライブラリの build.gradle はcom.android.libraryプラグインを使用する必要があります。

このセットアップでコマンドラインからビルドできる場合は、Android Studio IDE が更新されます。

于 2013-05-21T08:07:35.277 に答える
13

Intellij IDEA (および Android Studio) の場合、各ライブラリはモジュールです。Android Studio のモジュールは、Eclipse のプロジェクトに相当すると考えてください。Android Studio のプロジェクトは、モジュールのコレクションです。モジュールは、実行可能なアプリケーションまたはライブラリ モジュールにすることができます。

そのため、新しい Android ライブラリ プロジェクトを追加するには、「Android ライブラリ」タイプのモジュールを作成する必要があります。次に、このライブラリ モジュールをメイン モジュール (アプリケーション モジュール) の依存関係リストに追加します。

于 2013-05-21T06:51:35.453 に答える
12

ライブラリ プロジェクトを作成して再利用する最も簡単な方法は次のとおりです。

  1. 開いているプロジェクトfile > new > new module(および UI の質問に答える)

ここに画像の説明を入力

  1. ファイルsettings.gradleにあるかどうかを確認/追加します。include ':myLibrary'
  2. ファイルbuild.gradle内にあるかどうかを確認/追加します。

    dependencies { ... compile project(':myLibrary') }

  3. このライブラリ モジュールを別のプロジェクトで再利用するには、手順 1 の代わりにそのフォルダーをプロジェクトにコピーし、手順 2 と 3 を実行します。

新しいスタジオ アプリケーション プロジェクトを作成することもでき ます。build.gradle ファイルのプラグインの割り当てを com.android.library に変更することで、既存のアプリケーション モジュールをライブラリ モジュールに簡単に変更できます。

apply plugin: 'com.android.application'

android {...}

apply plugin: 'com.android.library'

android {...}

詳細はこちら

于 2015-06-27T04:05:24.187 に答える
5

apply プラグインの代わりに使用することを忘れないapply plugin: 'com.android.library'でください:build.gradle'com.android.application'

于 2015-05-14T21:50:45.530 に答える