Gradle エラー Failed to resolve com…

Android

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'
 }

ってつけようね!って書いてあるので、そのようにやってみましたが、うまくいきません。[sad]

うまくいかなかったときの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()
    }

これは、ビルドスクリプトのためのリポジトリであって、プロジェクトのためのリポジトリじゃないんですね[sad]

下記が動作するバージョンです。

 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}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です