ライブラリプロジェクトをAndroid Studioに追加して使用するにはどうすればよいですか?(質問の一部は有効になりません))で答えを見つけようとします ライブラリプロジェクトをAndroid Studio? または Android Studio(jarではない) しかし、機能しません。また、「アイテムの親を取得中にエラーが発生しました:指定された名前「Theme.Sherlock.Light」に一致するリソースが見つかりません「。」など.
私のSDKツールのリビジョンは22です。
マップサンプルを使用してこれを行う方法を示します。
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つのツールのみを追加することをお勧めします:)
以下の手順は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
}
プロジェクトに「ライブラリ」モジュールをインポートした後(これまでの理解から、ワークスペースはプロジェクトであり、プロジェクトはintellij/Android studio)のモジュールです)、
File -> Project structure -> Modules
またはselect the project and hit F4.-> Modules
に移動しますプロジェクトに「ライブラリ」プロジェクトからクラスが見つからないというエラーが引き続き表示される場合は、「ライブラリ」モジュール依存関係のモジュールの前にある「エクスポート」チェックボックスをオンにしてください。それが役立つことを願っています:)
これを見つけただけの人に。ライブラリプロジェクトのリソースにアクセスする必要がある場合(ABSの場合と同様)、ライブラリプロジェクト/モジュールを「ライブラリ」ではなく「モジュール依存関係」として追加してください。
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
GUIを使用してライブラリの依存関係を編集することは、build.gradleファイルにこれらの変更を書き込まないため、お勧めできません。したがって、プロジェクトはコマンドラインからビルドされません。 build.gradleファイルを次のように直接編集する必要があります。
たとえば、次の構造に与えられます:
私のプロジェクト/
3つのプロジェクトを識別できます。 Gradleは次の名前でそれらを参照します。
:appプロジェクトはライブラリに依存する可能性が高く、これは次の依存関係を宣言することで行われます。
dependencies {
compile project(':libraries:lib1')
}