何度かハマっているのでメモ。
##状況
Android Studioに手動でライブラリを追加した時。
例)
- app/modules配下にhttps://developers.facebook.com/docs/androidからダウンロードしてきたSDK(facebook-android-sdk)をそのまま配置する。
- settings.gradleやbuild.gradleにモジュールの設定をする
include ':app'
include ':modules:facebook-android-sdk'
dependencies {
compile 'com.android.support:support-v4:21.0.0'
compile 'com.android.support:appcompat-v7:21.0.2'
compile project(':modules:facebook-android-sdk')
}
3.gradle syncすると、以下のようなメッセージがでて、ビルドが通らない
Configuration with name 'default' not found
##原因
facebook-android-sdk自体がsampleも含んだひとつのプロジェクトであるのが原因。
ファイル構成として
facebook-android-sdk/
└CONTRIBUTING.mdown
└LICENSE.txt
└NOTICE.txt
└README.mdown
└bin
└build.gradle
└docs
└facebook
└gradle
└gradlew
└gradlew.bat
└libs
└samples
└settings.gradle
となっているわけなのですが,ライブラリとして利用する場合は、facebookだけが必要なモジュールです。
##解決方法
-
facebook-android-sdk/配下のfacebook/をアプリのプロジェクトのapp/modules配下におきます。
-
facebook-android-sdk/配下にあるgradle,gradlew,gradlew.batをfacebook/配下にコピーします。(不要かもしれませんが一応)
-
設定を直します。ディレクトリ名を直します。
include ':app'
include ':modules:facebook'
dependencies {
compile 'com.android.support:support-v4:21.0.0'
compile 'com.android.support:appcompat-v7:21.0.2'
compile project(':modules:facebook')
}
これでgradle syncし直したらうまくいくようになります。
今回の例はfacebook SDKですが、他のプロジェクトでもライブラリを追加する時は同様です。