hello-world.jp.net
webエンジニアのメモ。とりあえずやってみる。

[Android]AndroidStudioでVolleyを使う

公開日時

AndroidでAPI通信を行いたい場合に何を使うのがいいのかなと思い探してみたところ、「 Volley」というGoogle製のライブラリを使うと良さそうだったので、インストールしてみました。

1. volley.jarの作成

  • gitからvolleyのコードをcloneしてくる
cd AndroidStudioProjects
git clone https://android.googlesource.com/platform/frameworks/volley
  • volley.jarの作成
cd volley
android update project -p . -t 5
ant jar

これでbin以下にvolley.jarが作成されます

※ 参考記事では android update project -p . でビルドできるとあったのですが自分の環境では以下のようにターゲット指定が必要とエラーが出てしまったので android list targets を実行し、Android 4.4.2であるid 5を指定しました

# android update project -p . 実行時のエラー内容
Error: The project either has no target set or the target is invalid.
Please provide a --target to the 'android update' command.
It seems that there are sub-projects. If you want to update them
please use the --subprojects parameter.

2. AndroidStudioプロジェクトに取り込む

  • AndroidStudioでプロジェクトを作成(VolleySampleとしました)

  • volley.jarをlibs以下にコピー

cd AndroidStudioProjects
mkdir VolleySample/VolleySample/libs
cp volley/bin/volley.jar VolleySample/VolleySample/libs
  • build.gradleを編集

VolleySample/VolleySample/build.gradle の dependencies に追記します。

dependencies {
    // ・・・
    compile files('libs/volley.jar')
}

ディレクトリ構成はこんな感じです。

volley0

  • Syncを実行

メニューの「Tools」→「Android」→「Sync Project with Gradle Files」を実行します。

これを実行せずにコードを編集してもライブラリが読み込まれていないのでエラーになってしまいます。

また、Syncの前に

private RequestQueue mQueue;

と書いてエラーになっていた場合、Sync後もエラーが出続けてしまっていました。

Sync後に、一度上記コードを消して再度書き直すとエラーは出ずにちゃんと認識しました。

補完も表示されるようになります。

volley2

これに引っかかってハマっていました。。。

とりあえずこれでVolleyが使えるようになりました。

参考


Related #Android

[Android]GenymotionにGoogle Playを入れる

apkをGenymotionで起動しようとして、

[Android]Genymotionの電源をOFFにしたらUnable to start the Genyotion virtual device.エラーになった場合の対処法

端末再起動確認と思い、Genymotionの電源ボタンを長押しして電源OFFにしたら、Genymotionが起動しなくなってしまいました。

nginxで静的jsonファイル配信時に日本語が文字化けしないようにする

androidアプリ開発時に、volleyを使ってjson形式のapiを取得する処理を書いていたのですが、jsonに日本語が入っていると文字化けする現象に遭遇しました。