hello-world
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起動時にエラーが出た場合の対処法

新しいmacbookにAndroid環境を構築していた際に、Android Studio](http://developer.android.com/sdk/installing/studio.html) をインストールしたのですが、最初のサンプルを試した際にビルドを実行してもシミュレータが全然起動しなかったので、何かいい方法ないかなと調べていたところ、「[Genymotion + Android Studio で Android 爆速開発メモ」という記事を発見。

[Android]Genymotionのhostsを書き換える

Genymotionで起動している端末でAPIの検証をしていたのですが、hosts情報を書き換える必要があったのでやりかたを調べてみました。

[Android][Android Studio]admobを導入する

Android Studio上で開発したAndroidアプリにadmobを導入する手順のメモをまとめておきます。

[Android]WebViewでjsを有効にする

AndroidではWebViewを使用してWebページを開く際に、デフォルトだとjsが有効になっていないそうです。