AndroidのVolleyインストールでハマったのでメモ[Android Studio]

はじめに

AndroidでVolleyを使おうとして色々調べたのでメモ(理解が浅いので正しいのかは保証できないです).結構色んな所でハマりました.

2015/10/30 追記

最近Android触れてないんですが、今はもうRetrofitかOkHTTP使い分けるのが良いっぽいですね

ライブラリをインポートする方法

ライブラリのインストール方法は主に↓の3通りのパターン(ライブラリの管理がしやすそうな順にソート)がありそう。

  1. Mavenへの参照を記述

    MavenのデフォルトリポジトリであるThe Central Repositoryに、多くのAndroidのライブラリが登録されている。わざわざローカルにダウンロードしなくても、プロジェクトレベルのbuild.gradle(app/build.gradle)のdependenciesの中に設定を追加するだけで利用できる.

    かなりお手軽な方法だと思うけど、Volleyは登録されていないらしい.ちなみにMavenに登録されているライブラリはThe Central Repository Search Engine、もしくはmvnコマンドで検索できる。

  2. gitのサブモジュールとして追加

    トップレベルのディレクトリでgit submodule ~してからbuild.gradleに記述.今回はこの方法でVolleyをインストールしてみた.

  3. jarファイルをダウンロード(もしくはソースコードからビルド)して、libsディレクトリの中に格納

2014/11/7追記

最近、Mavenから参照できるようになったそうです.やり方は簡単で、build.gradleのdependenciesに↓の1行を追加すればOKです.

compile 'com.mcxiaoke.volley:library:1.0.7'

追記すると、↓のような感じです.

dependencies {
    compile 'com.mcxiaoke.volley:library:1.0.7'
    compile fileTree(dir: 'libs', include: ['*.jar'])
}


Volleyのインストール

基本的に↑の記事を参考にすすめてみました。詳しい説明は上記記事を参考に...

  • gitのサブモジュールとしてvolleyを追加
$ pwd
/Users/name/AndroidStudioProjects/VolleyApp
$ git init
$ git add .
$ git commit -m "initial commit"
$ git submodule add https://android.googlesource.com/platform/frameworks/volley modules/volley
  • settings.gradleを書き換え
include ':app',':modules:volley'
  • トップディレクトリの方のbuild.gradleに↓を追記
project(':modules:volley') {
    buildscript {
        repositories {
            mavenCentral()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:0.12.2'
        }
    }
}

gradleのバージョンは、使うときに最新のものを使っていない場合、Android Studioが教えてくれます。その時は最新のバージョンを指定。ここの指定を間違えるとThe project is using unsupported version of the Android Gradle plug-inというエラーが発生した。

  • app/build.gradleを書き換え
dependencies {
    compile project(':modules:volley') //←を追記
    compile fileTree(dir: 'libs', include: ['*.jar'])
}

以上で設定が終了。


エラーへの対処

設定が終わったので、動かしてみるとGradle SyncでFailed to sync Gradle projectというメッセージを受け取った。

failed to find Build Tools revision 19.0.0

Error: Cause: failed to find Build Tools revision 19.0.0
Install Build Tools and sync project

現在、SDK Managerを使ってBuild Toolsの20.0.0をインストールしていた。SDK Managerが19.0.0を使わないといけないのかなって思ったんだけど、結論からいうと各build.gradleのbuildToolsVersionを20.0.0にしたらいい。

android {
    compileSdkVersion 19
    buildToolsVersion "20.0.0" //← ここのバージョンを変える

結局はインストールしているBuildToolsのバージョンとアプリ側でしているBuildToolsのバージョンが一緒になればいいらしい。


The SDK Build Tools revision(19.0.0) is too low for project ':modules:volley'. Minimum required is 19.1.0

Error: The SDK Build Tools revision(19.0.0) is too low for project ':modules:volley'. Minimum required is 19.1.0

Gradleのバージョンが古いと怒られているみたい。さっきトップディレクトリのbuild.gradleの設定でちゃんと最新バージョンを指定していたと思うので、ここでかなり時間がかかった。原因は、volleyライブラリの中のbuild.gradleの方で指定されているGradleのバージョンが古いことにあった。

modules/volley/build.gradleを編集して

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.12.2' // ← ここはIDEに薦められたバージョンを指定。
    }
}

apply plugin: 'android-library'

android {
    compileSdkVersion 19
    buildToolsVersion = "20.0.0" // ←Build Toolsに合わせて指定

    ...


これで動かしてみると無事に動きました。

f:id:nwpct1:20140903021404j:plain

その他参考記事

WEB+DB PRESS Vol.81

WEB+DB PRESS Vol.81