Android Studioで開発をするようになって、否応なく、Gradleを使わされていますが、実はあんまりよくわからず使っている人も多いかと思いますが、私もその一人です。(;^ω^)
さて、弊社では、下記のライブラリを使っています。
osmbonuspack
https://github.com/MKergall/osmbonuspack/wiki/HowToInclude
今まで、Eclipseで開発していた時は、libフォルダ内にライブラリをブチこむ、という原始的なやり方で、なんか負けた感あったのですが、AndroidStudioになった今こそ、Gradleでやろうと思うわけです。
上記の公式サイトには、さらっと
repositories { ... maven { url "https://jitpack.io" } } dependencies { ... compile 'com.github.MKergall.osmbonuspack:OSMBonusPack:v5.6' }
ってつけようね!って書いてあるので、そのようにやってみましたが、うまくいきません。
うまくいかなかったときのbuild.gradleは下記のとおりです。
apply plugin: 'com.android.application' buildscript { repositories { maven { url 'https://jitpack.io' } jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.3.1' } } dependencies { compile fileTree(dir: 'libs', include: '*.jar') compile 'com.google.android.gms:play-services:6.1.+' compile project(':ratethisapp') //これがうまくいかない compile 'com.github.MKergall.osmbonuspack:OSMBonusPack:v5.6' } android { compileSdkVersion 17 buildToolsVersion "21.1.0" dexOptions { jumboMode true …後は省略
これでビルドすると、次のエラーが出ます。
Error:A problem occurred configuring root project 'hogehogeappli'. > Could not resolve all dependencies for configuration ':_google_play_in_serviceDebugCompile'. > Could not find com.github.MKergall.osmbonuspack:OSMBonusPack:v5.6. Searched in the following locations: https://repo1.maven.org/maven2/com/github/MKergall/osmbonuspack/OSMBonusPack/v5.6/OSMBonusPack-v5.6.pom https://repo1.maven.org/maven2/com/github/MKergall/osmbonuspack/OSMBonusPack/v5.6/OSMBonusPack-v5.6.jar
いろいろと試行錯誤しながら困っていたら、下記のサイトに答えがありました。
http://stackoverflow.com/questions/29118606/gradle-in-android-studio-failed-to-resolve-third-party-libraries
はうあ!
つまりは、repositoriesを書く場所が間違っていたのです。
下記の部分が間違い。
buildscript { repositories { maven { url 'https://jitpack.io' } jcenter() }
これは、ビルドスクリプトのためのリポジトリであって、プロジェクトのためのリポジトリじゃないんですね
下記が動作するバージョンです。
apply plugin: 'com.android.application' repositories { maven { url 'https://jitpack.io' } mavenCentral() } buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.3.1' } } dependencies { compile fileTree(dir: 'libs', include: '*.jar') compile 'com.google.android.gms:play-services:6.1.+' compile project(':ratethisapp') //osm bonuspackでつけたし compile 'com.github.MKergall.osmbonuspack:OSMBonusPack:v5.6' } android { compileSdkVersion 17 buildToolsVersion "21.1.0" dexOptions { jumboMode true } …後は省略
ちなみに、
repositories { maven { url 'https://jitpack.io' } }
として、mavenCentral()を書かないと、今度はcom.github.MKergall.osmbonuspack:OSMBonusPack:v5.6
内で読み込んでいるorg.apache.commons:commons-lang3:3.3.2などが読み込めず、下記のようなエラーになります。
Error:Failed to resolve: org.apache.commons:commons-lang3:3.3.2
ところで、なんでGradleがわかりにくいのかっていうと、公式サイトがわかりづらいし、いろんな問題があるかと思います。Android開発においてのGradleについて教えてほしいと思っても、Flavorでビルドのバージョンを簡単に変えられるよって記事の方が多くて、そもそもこのスクリプトたちって何してるの??というのがよくわかりづらいと思います。
ちなみに、それ系ならこちらでも解説していたりします。。。
Android Studio Flavorでやりたいことを切り替えるサンプル
どなたか、オススメのサイトか、本などありましたら、教えてください。┌o ペコッ
- おかげで、悩んでいた問題を解決した!本当にありがとう!!:D — {2016-01-13 (水) 17:47:29}
- おかげです悩んでいた問題を解決した!ありがとう〜 — Sabrina {2016-01-13 (水) 17:48:14}