Android Studio にライブラリプロジェクト(Sherlock ABSなど)を追加する方法を教えてください。
(古いADT Eclipseベースのバンドルではなく、新しい Android Studio へ。)
Android Studio 1.0用の更新プログラム
Android Studio 1.0がリリースされて以来(そして私の前の答えの時からのv1.0と最初のうちの1つの間の多くのバージョン)、いくつかのことが変わりました。
私の説明はGradleファイルを使って手作業で外部ライブラリプロジェクトを追加することに焦点を当てています(プロセスをよりよく理解するため)。 Android Studioの作成者経由でライブラリを追加したい場合は、 ビジュアルガイド付きの回答 以下)をチェックしてください(Android Studio 1.0とスクリーンショットの違いはいくつかありますが、プロセスは非常に似ています)。
手動でプロジェクトにライブラリを追加する前に、外部依存関係を追加することを検討してください。それはあなたのプロジェクト構造に混乱しないでしょう。ほとんどすべての有名なAndroidライブラリが Maven リポジトリで利用可能で、インストールにはapp/build.gradle
ファイルに1行のコードしか必要としません。
dependencies {
compile 'com.jakewharton:butterknife:6.0.0'
}
ライブラリを追加する
これが私たちのプロジェクトに外部Androidライブラリを追加する全プロセスです。
HelloWorld/ app/ - build.gradle // local Gradle configuration (for app only) ... - build.gradle // Global Gradle configuration (for whole project) - settings.gradle - gradle.properties ...
HelloWorld/
)に、新しいフォルダを作成します。/libs
ここに外部ライブラリを配置します(この手順は必須ではありません。プロジェクト構造をきれいにするためだけに使用します)。/libs
フォルダにライブラリを貼り付けます。この例では PagerSlidingTabStrip library を使用します(GitHubからZipをダウンロードし、ライブラリディレクトリの名前を "PagerSlidingTabStrip"に変更してコピーします)。これが私たちのプロジェクトの新しい構造です。HelloWorld/ app/ - build.gradle // Local Gradle configuration (for app only) ... libs/ PagerSlidingTabStrip/ - build.gradle // Local Gradle configuration (for library only) - build.gradle // Global Gradle configuration (for whole project) - settings.gradle - gradle.properties ...
ライブラリをinclude
に追加してsettings.gradleを編集します。私のようにカスタムパスを使用する場合は、ライブラリのプロジェクトディレクトリも定義する必要があります。 settings.gradle全体は以下のようになります。
include ':app', ':PagerSlidingTabStrip'
project(':PagerSlidingTabStrip').projectDir = new File('libs/PagerSlidingTabStrip')
5.1もしあなたが "Default Configuration"エラーに遭遇したら、ステップ5の代わりにこれを試してください。
include ':app'
include ':libs:PagerSlidingTabStrip'
app/build.gradle
にライブラリプロジェクトを依存関係として追加します。
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.Android.support:appcompat-v7:21.0.3'
compile project(":PagerSlidingTabStrip")
}
6.1。手順5.1を実行した場合は、6ではなくこれに従ってください。
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.Android.support:appcompat-v7:21.0.3'
compile project(":libs:PagerSlidingTabStrip")
}
ライブラリプロジェクトにbuild.gradle
ファイルがない場合は、手動で作成する必要があります。これがそのファイルの例です。
apply plugin: 'com.Android.library'
dependencies {
compile 'com.Android.support:support-v4:21.0.3'
}
Android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
minSdkVersion 14
targetSdkVersion 21
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
Java.srcDirs = ['src']
res.srcDirs = ['res']
}
}
}
さらに、一貫性を保つために、各モジュールのSDKバージョンとビルドツールバージョンを含むプロジェクトのグローバル設定を作成できます。 gradle.properties
ファイルを編集して行を追加するだけです。
Android_BUILD_MIN_SDK_VERSION=14
Android_BUILD_TARGET_SDK_VERSION=21
Android_BUILD_TOOLS_VERSION=21.1.3
Android_BUILD_SDK_VERSION=21
これで、以下のようにbuild.gradle
ファイル(アプリおよびライブラリモジュール内)でそれを使用できます。
//...
Android {
compileSdkVersion Integer.parseInt(project.Android_BUILD_SDK_VERSION)
buildToolsVersion project.Android_BUILD_TOOLS_VERSION
defaultConfig {
minSdkVersion Integer.parseInt(project.Android_BUILD_MIN_SDK_VERSION)
targetSdkVersion Integer.parseInt(project.Android_BUILD_TARGET_SDK_VERSION)
}
}
//...
それで全部です。 「プロジェクトをGradleと同期する」アイコンをクリックするだけです。 。あなたのライブラリはあなたのプロジェクトで利用できるはずです。
Google I/O 2013 - 新しいAndroid SDKビルドシステムは、Gradle Build Systemを使用してAndroidアプリをビルドする方法についての素晴らしいプレゼンテーションです。Xavier Ducrohetが述べたように、
Android Studioは、編集、デバッグ、およびプロファイリングに関するすべてのものです。それはもう構築することではありません。
最初は少し混乱するかもしれませんが(特に Eclipse であり、私のようなアリを見たことがない人))、Gradleが私たちにすばらしい機会を与えてくれ、学ぶ価値があります。このビルドシステム.
これがビジュアルガイドです。
アップデート Android Studio 0.8.2用:
Android Studio 0.8.2では、 プロジェクト構造 - > Modules の順にクリックし、 既存プロジェクトのインポート actionbarsherlock
をインポートします。それからあなたのGradleファイルを同期させてください。
あなたがエラーに直面した場合
エラー:SDKビルドツールのリビジョン(xx.x.x)が低すぎます。最低限必要なものはyy.y.yです。
actionbarsherlock
ディレクトリのbuild.gradle
ファイルを開き、buildToolsVersion
を推奨されたものに更新するだけです。
Android {
compileSdkVersion 19
buildToolsVersion 'yy.y.y'
メニュー ファイル - > プロジェクト構造... :
モジュール - > インポートモジュール
ライブラリモジュールをインポートしたら、 your projectモジュールを選択して依存関係を追加します。
次に、 インポートされたモジュール を選択します。
メニュー ファイル - > プロジェクト構造 - > モジュール を使用します。
私は今日それを使い始めました。ちょっと違います。
Sherlockの場合は、おそらくテストディレクトリを削除するか、junit.jar
ファイルをクラスパスに追加します。
Gradleを使ってライブラリをインポートするには、それをあなたのbuild.gradle
(モジュールのもの)のdependencies
セクションに追加する必要があります。
例えば。
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.Android.support:appcompat-v7:22.1.0'
compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
}
Android Studioは変わりつつあります。
Android Studioのプロジェクトセクションにあるモジュールフォルダを右クリックすると、 "Open module settings"というセクションがあります(私はバージョン0.2.10を使用しています)。
依存関係、Androidライブラリ、およびマルチプロジェクトのセットアップ 必要な読み方を検討します。数分かかります。
特に、jar以外のライブラリプロジェクトの場合は、上記のソースから次のコードを読んでください。
Gradleプロジェクトは、マルチプロジェクト設定を使用して他のGradleプロジェクトにも依存できます。マルチプロジェクト設定は通常、すべてのプロジェクトを特定のルートプロジェクトのサブフォルダーとして持つことによって機能します。
たとえば、次のような構造になります。
MyProject/
+ app/
+ libraries/
+ lib1/
+ lib2/
3つのプロジェクトを識別できます。 Gradleはそれらを次の名前で参照します。
:app
:libraries:lib1
:libraries:lib2
各プロジェクトには、ビルド方法を宣言する独自のbuild.gradleがあります。さらに、プロジェクトを宣言するルートにsettings.gradleというファイルがあります。これにより、次のような構造になります。
MyProject/
| settings.gradle
+ app/
| build.gradle
+ libraries/
+ lib1/
| build.gradle
+ lib2/
| build.gradle
Settings.gradleの内容はとてもシンプルです。
include ':app', ':libraries:lib1', ':libraries:lib2'
これはどのフォルダが実際にGradleプロジェクトであるかを定義します。
:appプロジェクトはライブラリに依存する可能性が高く、これは次の依存関係を宣言することによって行われます。
dependencies {
compile project(':libraries:lib1')
}
これを実現するためにAndroid Studio GUIを使用することはほとんど、またはまったくなかったことにご留意ください。
依存関係の混乱を避けるために、現在は gitサブモジュール をネストしたライブラリを実際のライブラリgitリポジトリにリンクするために使用しています。
(.gradleファイルに直接書き込むのではなく)もっと簡単な方法を見つけました。
これはAndroid Studio 1.1.0用です。
メニュー ファイル - > 新規モジュール... :
「Import Existing Project」をクリックしてください。
目的のライブラリと目的のモジュールを選択します。
終了をクリックしてください。 Android Studioがライブラリをプロジェクトにインポートします。それはgradleファイルを同期します。
インポートしたモジュールをプロジェクトの依存関係に追加します。
アプリフォルダを右クリックし、[モジュール設定を開く]、[依存関係]タブの順にクリックします。 - [+]ボタンをクリックし、[モジュール依存関係]をクリックします。
ライブラリモジュールはプロジェクトの依存関係に追加されます。
???
利益
私が見つけた最も簡単な方法は、外部ライブラリプロジェクトを含めることです(たとえば、依存ライブラリフォルダの1つ上のディレクトリに格納されているFacebookライブラリを含めること)。
Settings.gradleに追加
include ':facebook'
project(':facebook').projectDir = new File(settingsDir, '../dependencies/FacebookSDK')
Build.gradle依存関係セクションに、追加
compile project ('facebook')
やらなければならないのは、プロジェクトと許可ファイルを同期させることだけです。
あなたのAndroid StudioプロジェクトにライブラリとしてJARファイルを追加する簡単な方法:
a)あなたの* .jarファイルをコピーする
b)プロジェクトの下の libs ディレクトリに貼り付けます。
c)build.gradleに追加します。
dependencies {
...
compile files('libs/ScanAPIAndroid.jar', 'libs/ScanAPIFactoryAndroid.jar', .., ..)
}
b) サンプルのcom.example.MYProjectおよびライブラリcom.example.ScanAPIのプロジェクトの名前空間がcom.example の場合、Android Studioはビルドを確認し、プロジェクトに必要な変更をすべて作成します。その後、メニューでこれらの設定を確認できます ファイル - > プロジェクト構造 。
c) プロジェクトとライブラリの名前空間が異なる場合 ライブラリを右クリックして[ライブラリとして追加]オプションを選択し、必要なタイプを選択する必要があります。
現在のバージョンのAndroid Studio(0.2.3)では、 "プロジェクト構造"オプションは "build.gradle"の自動変更を行っていません。たぶん、この機能は次のバージョンで利用可能になるでしょう。
関連するbuild.gradleファイルが自動的に更新されます。
Build.gradleファイルを開き、依存関係クロージャに新しいビルドルールを追加します。たとえば、Google Play Servicesを追加したい場合、プロジェクトの依存関係セクションは次のようになります。
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.Android.gms:play-services:6.5.+'
}
プロジェクトパネルで、 Control 依存関係を追加したいモジュールを+クリックして、Open Module Settingsを選択します。
[依存関係]タブを選択し、続いて左下隅にある[+]ボタンをクリックします。以下のオプションのリストから選択できます。
その後、プロジェクトに追加したい依存関係に関する詳細情報を入力できます。たとえば、[Library Dependency]を選択した場合、Android Studioは選択可能なライブラリのリストを表示します。
依存関係を追加したら、モジュールレベルのbuild.gradleファイルを確認してください。新しい依存関係を含むように自動的に更新されているはずです。
外部ライブラリプロジェクトを追加したいプロジェクトで、メニュー ファイル - > 新規 - > *新規モジュールのインポート**に進み、追加したいライブラリプロジェクトに移動します。あなたのプロジェクトに、あなたのプロジェクトに 'library'モジュールを追加することを選択してください。あなたは settings.gradle をあなたのプロジェクトの中で、アプリの横に、ライブラリを含めて、このようなもので取得します。
include ':app', ':library'
依存関係セクションに build.gradle(Module:app) を追加します。
プロジェクトをコンパイルする( ':library')
プロジェクトを再ビルドしてください。
*あなたは好きなだけライブラリ(モジュール)を追加することができます。その場合、settings.gradleには以下のものがあります。
include ':app', ':lib1', ':lib2', ...
そしてbuild.gradleでは、次のものが必要になります。
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
// Some other dependencies...
compile project(':lib1')
compile project(':lib2')
...
}
ABSと同様に、ライブラリプロジェクトのリソースにアクセスする必要がある場合は、ライブラリプロジェクト/モジュールを「ライブラリ」ではなく「モジュール依存関係」として追加してください。
GUIを介してライブラリの依存関係を編集しても、build.gradleファイルにそれらの変更が書き込まれないため、お勧めできません。だからあなたのプロジェクトはコマンドラインからビルドされません。次のようにbuild.gradleファイルを直接編集する必要があります。
たとえば、次のような構造になります。
私のプロジェクト/
3つのプロジェクトを識別できます。 Gradleはそれらを以下の名前で参照します。
:appプロジェクトはライブラリに依存する可能性が高く、これは次の依存関係を宣言することによって行われます。
dependencies {
compile project(':libraries:lib1')
}
答えを追加すると、IDEにエラーが表示されず、コンパイルしようとすると、次のようになります。
No resource found that matches the given name 'Theme.Sherlock.Light'
ライブラリプロジェクトは、おそらくアプリケーションプロジェクトとしてコンパイルされています。これを変更するには、にアクセスしてください。
メニュー ファイル - > プロジェクト構成 - > ファセット - > [ライブラリ名] - > "ライブラリモジュール"をチェックしてください。
最初の方法 これはMacBookに対応しています。
最初に与えられたスクリーンとしてあなたのbuilder.gradleファイルを選択してください。
選択した画面のように依存関係を追加します。
同期プロジェクトを選択します。
「パスが ':signature-pad'のプロジェクトがプロジェクト ':app'に見つかりませんでした」のようなエラーが発生した場合は、2番目の方法を使用してください。
メニューファイル - > 新規 - > インポートモジュール...:
Import Moduleをクリックした後、
私のMacBookのパスのようにライブラリのパスを指定します。
Finishをクリックしてください。これであなたのライブラリが追加されました。
ABSモジュールを(File> Project Structureから)インポートし、それが依存関係としてAndroid 2.2とSupport Library v4を持っていることを確認した後、私はあなたとして@Alexとしてまだ次のエラーを得ていました
Error retrieving parent for item: No resource found that matches the given name 'Theme.Sherlock.Light.DarkActionBar'
私はメインのアプリモジュールへの依存関係として新しくインポートされたモジュールを追加し、それが問題を解決しました。
アプリの build.gradle ファイルの依存関係ブロックにライブラリ名を追加するだけです。
dependencies {
// ...
implementation 'com.example:some-library:1.0.0'
}
今はimplementation
ではなくcompile
を使うべきです。これはAndroid Studio 3.0の新機能です。違いについての説明は このQ&A をご覧ください。
この問題を解決するには、以下のようにabsリソースパスをプロジェクトビルドファイルに追加するだけです。
sourceSets {
main {
res.srcDirs = ['src/main/res','../../ActionBarSherlock/actionbarsherlock/res']
}
}
だから、私は再びエラーなしでコンパイルします。
Android Studio .0.4.0をお持ちの場合は、ビルドパスに新しいフォルダYourApp/libraries
を作成できます。 JARファイルをコピーします。そこに、それを右クリックして「ライブラリとして追加」をクリックしてください。今、あなたはポップアップを持っています。ディレクトリを選択してOKを押すだけです。
https://www.dropbox.com/s/1e3eteu3h0pmkf7/Android%20studio%20_doc.doc?dl=0 は最新バージョンのAndroid StudioにJARファイルとライブラリプロジェクトを追加する方法のDropboxリンク1.0.1。
スクリーンショット付きのドキュメントを参照してください。新しいユーザーにとってはとても簡単です。
Androidライブラリプロジェクトをモジュールとしてインポートし、Build.gradleに入力するだけです。
プラグインを適用する: 'com.Android.library'
その後、次の手順に従います。
Build gradleモジュールのアプリファイルを開き、依存関係を追加します。ライブラリをダウンロードする場合は、gradleとしてインポートしてビルドしてください。
それ以外の場合はサイドグラドルモジュールアプリにリポジトリを追加します。
repositories {
maven { url 'http://clinker.47deg.com/nexus/content/groups/public' }
}
最初のリポジトリはあなたのためにライブラリをダウンロードします。
そしてダウンロードしたライブラリをコンパイルします。
compile ('com.fortysevendeg.swipelistview:swipelistview:1.0-SNAPSHOT@aar') {
transitive = true
}
ライブラリを作成している場合は、プロジェクトを新しいモジュールのインポートとしてインポートするだけです。
基本的に、JARファイルを3つの異なる方法で含めることができます。最後のものは https://bintray.com/ jcenterオンラインリポジトリを使用しているリモートライブラリです。しかし、他の2つの方法のいずれかでそれを実行すると、JARファイルはプロジェクトに物理的に含まれます。このリンクを読んでください https://stackoverflow.com/a/35369267/5475941 詳細については。この記事では、AndroidスタジオにJARファイルをインポートする方法を説明し、考えられるすべての方法について説明しました。
要約すると、このような場合(ローカルアドレス)、それらはダウンロードされ、これらのJARファイルは物理的にプロジェクト内にあります。
しかし、それがこのようなインターネットアドレスであれば、それらはリモートライブラリ(bintray.com jcenter part)であり、それらはリモートで使用されます。
助けになれば幸いです。
私はその解決策を見つけました。とても簡単です。 froger_mcsの指示に従ってください 。
必ずsrcフォルダをSourceフォルダにします _プロジェクト構造 - >モジュール(Sources).
私は人々のためにそう問題の異なる原因があった:
repositories {
mavenCentral()
}
mavenCentral()をjcenter()に変更して追加
allprojects {
repositories {
jcenter()
}
}
Android Studioで、アプリフォルダー内に移動してbuild.gradleファイルを開きます。ここでは依存関係{}を見るでしょう。その中にあなたはライブラリプロジェクトを追加して同期することができます。ライブラリを同期した後、プロジェクトに追加され、プロジェクトでその関数とクラスを使用できます。
私はまた私が事に続いてしたのと同じ問題に遭遇しました。
メニューを使用してライブラリプロジェクトをモジュールとして私のAndroidStudio IDEにインポートしますファイル - >モジュールのインポートメニュー
それから私は私が私が私が依存プロジェクトとして図書館プロジェクトを望んでいる私のメインモジュールに行きました
メインモジュールを右クリックします(私の場合、名前はapp) - >オープンモジュール設定 - >依存関係タブに移動 - > +ボタンをクリック(ウィンドウの右側に表示されます) - >モジュールの依存関係をクリック - >リストからあなたのライブラリプロジェクトを選択
変更を適用してをクリックします。 OK ボタン。
それは私のために働きました。他の人にも役立つことを願っています。