web-dev-qa-db-ja.com

ライブラリプロジェクトをAndroid Studioに追加して使用するにはどうすればよいですか?

ライブラリプロジェクトをAndroid Studioに追加して使用するにはどうすればよいですか?(質問の一部は有効になりません))で答えを見つけようとします ライブラリプロジェクトをAndroid Studio? または Android Studio(jarではない) しかし、機能しません。また、「アイテムの親を取得中にエラーが発生しました:指定された名前「Theme.Sherlock.Light」に一致するリソースが見つかりません「。」など.

私のSDKツールのリビジョンは22です。

18
Marshall

マップサンプルを使用してこれを行う方法を示します。

Android Studioでマップサンプルをインポートし、対応するmapsモジュールを作成したとします。

1。Androidライブラリモジュールを作成します

GMS用の追加のライブラリモジュールを作成する必要があります。これには、マップサンプルがmapモジュールをコンパイルするためにGoogle APIから必要とするすべてのクラスが含まれます。

ライブラリプロジェクトは次の場所にあります。

$Android_SDK/extras/google/google_play_services/libproject/google-play-services_lib

これを行うには、File-> Import moduleそして、上記の場所またはライブラリプロジェクトの場所を選択します。

次に、既存のソースからモジュールを作成するまたは外部モデルからモジュールをインポートする。私の場合、それは既存のソースからのものです。

Android Studioは、これまでのところsrc/resディレクトリを検出しています。

また、ライブラリディレクトリも検出します。これにより、lib /(私の場合はgoogle-play-services.jarのような)にあるすべてのjarの手動インポートが保存されます。

[編集:ライブラリを作成しますが、モジュールの依存関係でそれらをリンクしないため、実際には半分の時間しか節約できません]

2。メインモジュールの依存関係を更新する-ライブラリモジュール

さて、トリッキーな部分は、モジュールを作成しただけで、依存関係としてプロジェクトにリンクしていないことです。

そうする、File-> Project structure-> Modules

私の場合、メインモジュールmapsを選択し、右側のdependenciesタブに移動します。クリック +および3. Module dependency

メインモジュールが依存するモジュールを選択し、[OK]をクリックします。

。メインモジュールの依存関係を更新する-Jars

原因不明の理由で、私のmapsモジュールのアクティビティはまだAPIクラスを見つけることができません。また、モジュール構成にgoogle-play-services.jar依存関係を手動で追加する必要があります(2.のように、ただしLibraryではなくモジュールの依存関係);

この点は確実にgradleで自動化できますが、まだ検討していません。新しいIDEを使用する場合、使用するツールが少ないほど、構成エラーを追跡しやすくなります。一度に1つのツールのみを追加することをお勧めします:)

22
Thibault D.

以下の手順はAndroid Studio 1.3.1で私のために働いた

mylib1はスタンドアロンプ​​ロジェクトにあります。

Mylib1を必要とする私のプロジェクトで

1)settings.gradleファイルを編集します

include ':app'
include ':mylib1' ##New line
project(':mylib1').projectDir = new File('../../Android_lib_repo/mylib1/app/') ##New line

../../ Android_lib_repo/mylib1はプロジェクトディレクトリです

../../ Android_lib_repo/mylib1/app /はモジュールディレクトリです

2)build.gradleファイルを編集する

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'org.bouncycastle:bcprov-jdk16:1.46'
    compile 'com.google.Android.gms:play-services:6.5.87'
    compile 'com.Android.support:appcompat-v7:21.0.3'
    compile 'com.Android.support:support-v4:21.0.3'
    compile project(':mylib1') ##New line
}
7
ChinLoong

プロジェクトに「ライブラリ」モジュールをインポートした後(これまでの理解から、ワークスペースはプロジェクトであり、プロジェクトはintellij/Android studio)のモジュールです)、

  1. File -> Project structure -> Modulesまたはselect the project and hit F4.-> Modulesに移動します
  2. 「ライブラリ」モジュール(中央の列)を選択し、「依存関係」タブ(右端の列)をクリックします
  3. チェックボックスをクリック(エクスポート)モジュール名の前。 (確認してください)
  4. ここで、「your」モジュールを選択し、左側のペインで+記号をクリックして「3. Module Dependencies ...」を選択し、「library」プロジェクトを選択して「OK」をクリックします。
  5. モジュールを今すぐコンパイルします。

プロジェクトに「ライブラリ」プロジェクトからクラスが見つからないというエラーが引き続き表示される場合は、「ライブラリ」モジュール依存関係のモジュールの前にある「エクスポート」チェックボックスをオンにしてください。それが役立つことを願っています:)

2
wildnux

これを見つけただけの人に。ライブラリプロジェクトのリソースにアクセスする必要がある場合(ABSの場合と同様)、ライブラリプロジェクト/モジュールを「ライブラリ」ではなく「モジュール依存関係」として追加してください。

1
drewan50

Studioで作成されたプロジェクトまたはADTからGradleにエクスポートされたプロジェクトを使用している場合、build.gradleを編集して依存関係を変更する必要があります。 [プロジェクト構造]ダイアログのUIはIDEの依存関係にのみ影響しますが、依存関係が設定されていないGradleを使用します。

Build.gradleを編集すると、Studioがリロードされ、両方の場所の依存関係が更新されます。

依存関係およびマルチモジュールセットアップの詳細については(依存関係としてモジュールも追加する場合)、 http://tools.Android.com/tech-docs/new-build-systemをご覧ください。/user-guide#TOC-Dependencies-Android-Libraries-and-Multi-project-setup

1
Xavier Ducrohet

GUIを使用してライブラリの依存関係を編集することは、build.gradleファイルにこれらの変更を書き込まないため、お勧めできません。したがって、プロジェクトはコマンドラインからビルドされません。 build.gradleファイルを次のように直接編集する必要があります。

たとえば、次の構造に与えられます:

私のプロジェクト/

  • アプリ/
  • ライブラリ/
    • lib1 /
    • lib2 /

3つのプロジェクトを識別できます。 Gradleは次の名前でそれらを参照します。

  1. :アプリ
  2. :libraries:lib1
  3. :libraries:lib2

:appプロジェクトはライブラリに依存する可能性が高く、これは次の依存関係を宣言することで行われます。

dependencies {
    compile project(':libraries:lib1')
}
1
Shakti Malik