Volley Androidネットワークライブラリ


120

私のプロジェクトでVolleyを使用することについていくつか質問があります。

  1. このライブラリは、どのJavaプロジェクトでもAndroidでも使用できますか?
  2. ここには複数のブランチがあり、どのブランチから開始するかに関するドキュメントはありません。最初に使用するブランチはどれですか?
  3. このライブラリを自分のプロジェクトにどのように統合しますか?どのアプローチが優れていますか:Volleyをスタンドアロンライブラリプロジェクトとして作成し、jarをスピンしてプロジェクトに配置するか、プロジェクト内のすべてのソースコードをコピーしますか?

7
gitリポジトリに複数のブランチが表示されている場合は、マスターブランチのクローンを作成して使用を開始することを常に想定している必要があります。他のブランチはすべてセカンダリです。
IgorGanapolsky 2014年

Volleyをgitサブモジュールとして追加することもできます。詳細な説明:gitsubmoduleasandroidtudiomodule.blogspot.in
Arpit Ratan

回答:


204
$ git clone https://android.googlesource.com/platform/frameworks/volley
$ cd volley
$ android update project -p .
$ ant jar

次に、bin/volley.jarあなたのlibs/フォルダーにコピーして、あなたは出かけます!

ソース


8
注:これを行うには、PATH変数を修正する必要があります。これをLinuxで行うには、次の手順を実行します(.profileまたはPATH変数を配置した場所で)。1. export ANDROID_HOME = <android-sdk-dir>
Johan S

104
独自のネットワークライブラリをインストールするための手順を見つけるために、5つの異なるGoogle検索結果にアクセスしなければならなかったのは驚くべきことです。
Gowiem 2013

24
深刻な質問:ボレーJarファイルの直接ダウンロードがどこにもないのはなぜですか?1つのユニバーサルJARファイルに問題がありますか?
PGMacDesign 2015年

5
「ボレーは有効なプロジェクトではありません(AndroidManifest.xmlが見つかりません)
Ersen Osman

8
@ ChintanSoni、〜3か月前、gitの提出c9ef93aは「GradleからMavenに移行する」と言います。「android update -p。」を実行する代わりに、mavenコマンド、「mvn compile」、「mvn package」の順に実行します。
Jared Messenger

73

バレーボールの授業は、Googleは、Androidライブラリプロジェクトとして、またはとして私たちのプロジェクトにバレーボールを追加するいずれかのように指示し.jarたファイル。

Android StudioまたはEclipse.jarを使用してVolley ファイルを作成する方法は次のとおりです。

注意:

どちらの場合でも、.jarファイルの名前をVolleyの最新のコミットの日付に変更することをお勧めしますvolley_20150319.jar。つまり、バージョン管理を単純に保つためです。


Android Studio:

  1. Git経由でVolleyリポジトリのクローンを作成します。
  2. プロジェクトをAndroid Studioにインポートします。(私は通常、Android StudioにインポートするときにプロジェクトのGradleファイルを選択します)
  3. プロジェクトをビルドします。(私はgradleビルド設定を変更して最新のビルドツールとgradleバージョンを反映する必要がありましたが、通常は最新です)。
  4. ファイルエクスプローラーに移動します。 [your local path to volley]/build/intermediate/bundles/
  5. debugおよびreleaseフォルダーの両方に、というJARファイルがありますclasses.jar
  6. いずれかのJARファイルをlibs/フォルダーにコピーします。
  7. Gradleの同期が完了すると、完了です。

日食:

  1. Git経由でVolleyリポジトリのクローンを作成します。
  2. プロジェクトをEclipseにインポートします。
  3. プロジェクトを右クリックして、[ エクスポート... ]を選択します
  4. [ Java / JARファイル]を選択します
  5. 関心があるのはsrcフォルダーのみで、他には何もありません。プロジェクトのみが選択されていることを確認する最も簡単な方法は、プロジェクトの選択を解除してから、内部のsrcフォルダーを選択することです。
  6. [ 生成されたクラスファイルとリソースをエクスポート ]オプションをオンにします。
  7. オプション:Javadocを表示する場合は、[ Javaソースファイルのエクスポート]リソースも選択します
  8. JARファイルを作成し、libs/フォルダーに配置します。

1
これは素晴らしい。私にとって最も重要なヒントは、#5(srcのみを選択)でした。これは、私が含めようとした他のライブラリにも役立ちました。
wblaschko 2014年

1
あなたは私を1日救います!「srcフォルダーのみをチェック」は私にとっては機能します:)
Wooseong Kim

48

1)このライブラリは、通常のJavaプロジェクトのネットワークライブラリとしても使用できますか、それとも厳密にはAndroid専用です

Android固有のクラスに依存するため、Android専用です。あなたはもののため、ソースコードを見て、これを伝えることができますようにRequestQueue

2)ここに複数のブランチがあり、どのブランチから開始するかに関するドキュメントがありません。最初に使用するブランチはどれですか?

Google I | Oプレゼンテーションからの指示は、デフォルトでブランチgitからプルするリポジトリを複製することmasterでした。

3)このライブラリを自分のプロジェクトに統合する方法は?どの方法が良いですか:Volleyをスタンドアロンライブラリプロジェクトとして作成し、jarをスピンしてプロジェクトに配置するか、プロジェクト内のすべてのソースコードをコピーしますか?

Google I | Oプレゼンテーションの指示は、プロジェクトにソースコードを追加することでした。個人的には、これは奇妙なアプローチだと思います。


致命的:リモートエラー:アクセスが拒否されました(お住まいの国ではご利用いただけません)!jarをダウンロードしてjarをプロジェクトに追加した場合、私の国では動作しますか?それともクローンせずにjarをダウンロードするにはどうすればよいですか?
Dr.jacky 14年

はい、彼らの指示は「マスター」ブランチを使用することを示唆しているようですが、マスターが積極的に変化しているように見えるので、これは少し奇妙だと思います。おそらく、最新のリリースブランチを見つける方が良いでしょう。
トム

41

あなたはvolley.jarをダウンロードすることができます

ソース:AndroidHive

Volley.jarlibsにコピーします

その後

volley.jar ->ライブラリとして追加を右クリック

ここに画像の説明を入力してください


4
本当にありがとうございました。誰もが「jarをlibフォルダーにコピーする」と言って、そのままにしておきます。
Hoser 2015年

cURLによると、このjarは2014年5月1日以降更新されていません
yuval 2015

新しいjar versonはどうですか?
f470071

26

VolleyライブラリがAndroidオープンソースプロジェクトによって公開されました。

dependencies {
    implementation 'com.android.volley:volley:1.1.0'
}

4
libsフォルダにある場合は、volley.jarを削除してください。そして、app / build.gradleファイルからvolley.jarへの参照を削除します。
Silver Sagely 2016

16

更新: Volleyが公式になり、JCenterから入手できるようになりました。これをインポートする方法は次のとおりです。

compile 'com.android.volley:volley:1.0.0'

奪われた方法:

Gradleを使用している場合は、ここからVolleyをインポートできます

dependencies {
    compile 'com.mcxiaoke.volley:library:1.0.+'
}

注意

これは非公式のミラーです(いくつかのマイナーなバグ修正が含まれています。詳細はChangelogを参照してください)。androidvolley libraryの場合、ソースコードは公式のvolleyリポジトリと定期的に同期します。


1
これはファイルのどこにあるべきですか?
Tash Pemhiwa 2014年

Gradleを使用してアプリをビルドしている場合は、プロジェクトのbuild.gradleファイルである必要があります。Gradleを使用していない場合は、ここに掲載されている他のソリューションをご覧ください。
C0D3LIC1OU5 2014年

1
おかげで、私はbuild.gradleファイルのどこに上記があるべきかを意味しましたか?
Tash Pemhiwa 2014年

メタルビアードが彼のコメントで述べたように。既に宣言されている場合は、依存関係の内部。そうでない場合は、ファイルの最後で宣言しますが、androidタグ内には含めないでください
ZsoltBoldizsárOct

2
注:これは公式ではありません。ボレーレポのミラーです。
Itai Hanski、2015

13

たくさんの方法

単一のアプローチについては多くの回答がありますが、ボレーを開始して実行するためのさまざまな方法を比較するものはないので、2セントも入れました。この回答も自由に編集/拡張してください。

ライブラリとして追加-(迅速な解決策)

  1. それをダウンロードする:androidhive
  2. それをあなたの[MyProjectPath]/app/libs/フォルダーに入れてください
  3. Android Studio right-clickでそれを選択しますAdd As Library...

gitからのソースファイル-(かなり公式なソリューション)

  1. gitクライアントをダウンロードしてインストールします(まだシステムにインストールしていない場合)(othervise viagit clone https://github.com/git/git ... sry badを。ただし、抵抗できませんでした^^)
  2. 実行する git clone https://android.googlesource.com/platform/frameworks/volley
  3. comフォルダーを[path_where_you_typed_git_clone]/volley/srcプロジェクトapp/src/main/javaフォルダーにコピーします(または、comフォルダーが既にある場合は、代わりに統合します!! ;-))。

    ファイルはAndroid Studioにすぐに表示されます。Eclipseの場合はright-clicksrcフォルダーを開いてrefresh(またはF5)を最初に押す必要があります。

    gitを介してそれを行うことは、Androidチュートリアルで公式に提案されていることです(ここを見てください)。

「非公式」ミラーを介したGradle-(動的ソリューション)

  1. プロジェクトのsrc/build.gradleファイルに、次のボレー依存関係を追加します。

        dependencies {
            compile fileTree(dir: 'libs', include: ['*.jar'])
            // ...
    
            compile 'com.mcxiaoke.volley:library:1.+'
        }
  2. Try AgainすぐBuildにファイルの上部に表示されるか、表示されない場合はそれをクリックします

    ここでの主な「利点」は、バージョンを最新の状態に保つことですが、他の2つのケースでは、手動でボレーを更新する必要があります。

    「マイナス面」は、公式にはグーグルからではなく、サードパーティのウィークリーミラーです。

    しかし、これらの点はどちらも、実際に必要とするものと相対的なものです。また、更新が必要ない場合は、代わりに目的のバージョンをそこに配置するだけcompile 'com.mcxiaoke.volley:library:1.0.7'です。


11

独自のコード管理にGITを使用する場合は、プロジェクトのサブモジュールとしてGITを追加しないでください...

git submodule add https://android.googlesource.com/platform/frameworks/volley -b master Volley

そうすれば、Volleyコードベースが更新されるので、更新も簡単です...

git submodule git pull

独自のプロジェクトでメインVolleyクラスを拡張して変更することができます。これにより、Volleyフレームワークが更新されるたびに変更をコーディングする必要がなくなります。


問題は、ボレープロジェクトがAndroidライブラリとして定義されていないことです。
ニコラ・ローキン2013

IDEでVolleyをライブラリとして設定する必要があります。
Simon.Ponder 2013

これを行うと、プロジェクトのプロパティが変更され、サブモジュールは「変更済み」の状態になります。そのため、このソリューションを使用したくありません。「正しく定義された」プロジェクトでは、サブモジュールを使用することになりますが、Volleyには使用しません。ここまでボレーの瓶を作りました。
Nicolas Lauquin、2013

1
変更を加えても、Googleソースからプルできます。コードを変更して保存する場合は、クローンを作成し、ローカルリポジトリに2つの異なるリモートを参照させ、一方をリモートからプルし、もう一方を使用して、保存するコードをプッシュします。プロジェクトをどこかに保存していて、サブモジュールをどこにもコミットせずに親プロジェクトからプッシュする場合、サブモジュールを変更したままにしておくのが面倒な理由はわかりませんが、サブモジュールのコミットへの参照をプッシュしますあなたがそれを追加したとき。
Simon.Ponder 2013

8

これは、Volley Httpリクエストの小さなクイックスタートです。統合は非常に簡単です。

  • アプリケーション全体のVolley RequestQueueが必要です。

    1. private static RequestQueue reqQueue;

これをApplicationクラスに入れて、getRequestQueue()を介して静的に利用できるようにすることができます。

  • 次に、既にRequestQueue.add()メソッドを使用して、Volleyで最初のリクエストを実行できます。

    2. reqQueue.add(...)
  • JsonObjectRequestを使用して単一のオブジェクトを照会し、JsonArrayRequestを使用してオブジェクトのリストを照会します。

    queue.add(new JsonArrayRequest(URL, new Listener<JSONArray>() {
    
        @Override
        public void onResponse(JSONArray response) {
            //SUCCESS
        }}, new ErrorListener() {
    
        @Override
        public void onErrorResponse(VolleyError error) {
            //ERROR
        }}));
  • Volleyが統合キャッシュ機能を利用できるように、サーバー側でHttp Expiresヘッダーを正しく設定することを忘れないでください。


2
RequestQueue APIを使用する前に、このライブラリをプロジェクトに追加する必要があります...
IgorGanapolsky 2014年

2

Android Studio ang Gradleの別の方法を次に示します。

次は、プロジェクトのbuild.gradle(アプリ構造レベル)に必要です。

repositories {
    maven {
        url 'https://github.com/Goddchen/mvn-repo/raw/master/'
    }
    mavenCentral()
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    // You must install or update the Support Repository through the SDK manager to use this dependency.
    compile 'com.android.support:support-v4:20.+'
    compile 'com.android:volley:1.+'
}

これを行うのは悪い考えです。あの図書館は1年前のものです。そして、それが更新されることを疑う;-)
Patrick Boos

1

最初にGitからプロジェクトを複製します

$git clone https://android.googlesource.com/platform/frameworks/volley
  • 日食でボレーをインポートします。
  • プロジェクトを右クリックします->プロパティ->アンドロイド
  • ライブラリを追加する->ボレーを選択する(ボレーが表示されない場合は、ボレーライブラリを右クリックして、プロパティに移動し、Androidをクリックしてライブラリをクリックします)
  • ライブラリとしてボレーを追加したら、アプリケーションでボレーを使い始めることができます。

あなたが知っておくべきいくつかの基本的なボレーのクラスは

  • RequestQueue
  • JsonArrayRequest
  • JsonObjectRequest

最初にボレーを使用するには、RequestQueueのオブジェクトを作成する必要があります

RequestQueue mQueue = Volley.newRequestQueue(getApplicationContext());

2番目-> JsonArrayRequestまたはJsonObjectRequestを使用してリクエストを作成します

JsonArrayRequest mJsonRequest = new JsonArrayRequest(url, 
            new Listener<JSONArray>() {

                @Override
                public void onResponse(JSONArray response) {
                    // here you can parse response and use accordingly
                }
            }, new ErrorListener() {

                @Override
                public void onErrorResponse(VolleyError error) {
                    // here you will receive errors and show proper message according to error type

                }
            });

そして最後にリクエストをキューに入れます。すなわち

mQueue.add(mJsonRequest);

また、RequestQueryのシングルトンを作成することをお勧めします。


1

Volley jar(または任意のjar)をAndroid Studio 1.0.2に追加するのがかなり簡単になりました。Android Studioの外部から(既に存在しているはずです)にコピーvolley.jar<yourproject>/app/libsます。デフォルトのGradleセットアップには次の行が含まれているため:

 compile fileTree(dir: 'libs', include: ['*.jar'])

...すべてが設定されました。デフォルトのプロジェクト構造ビューに(File -> Project Structure)libsディレクトリが表示されないため、そうではない可能性があります。これを表示するには、プロジェクト構造ビューのすぐ上にあるスピナーを使用してに変更Androidする必要がありますProject

アプリがビルドされ(必要ない場合もあります)、次のようなコードの入力を開始することで機能していることがわかります。

 RequestQueue request

Android Studioから完了のプロンプトが表示されることがわかりますRequestQueue (com.android.volley)


1

それがあなたの好みであれば、デバッグaarをビルドするのもかなり簡単です。

git clone https://android.googlesource.com/platform/frameworks/volley

次に、別のディレクトリに新しいAndroidスタジオプロジェクト(通常のアプリプロジェクトのみ)を作成します。それが完了したら、新しいサブモジュール(ファイル|新しいモジュール)を追加します。既存のプロジェクトのインポートオプションを選択し、それをボレーをチェックアウトしたディレクトリにポイントします。それが完了すると、モジュールを作成でき、aarファイルが作成されます。


1

日食ルナを使用するには、次のことを行う必要があります。

  • GITからクローンします。
  • 通常のAndroidプロジェクトのように、JAVAフォルダーの下のフォルダーCOMをSRCフォルダーの下にカット(コピー&削除)します。
  • project.propertiesターゲットを8ではなく15に変更します。
  • プロジェクトをビルドします。
  • ソースを含むjarファイルとしてプロジェクトをエクスポートします-エクスポートツールを使用します。
  • COMフ​​ォルダーとMETA-INFフォルダーのみをエクスポートされたjarに保持し、他のすべてのフォルダーを削除します。zipツールを使用してjarのコンテンツを削除します。
  • このjarをVolley jarプロジェクトとして使用します。
  • Volley jarを宛先Androidプロジェクトのlibフォルダーに配置します。

1

Android Studioを使用している場合は、この行をgradleファイルに入れてください

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

GETメソッドを使用する場合は、そのようなものが必要です。

private void weatherData() {
    JsonObjectRequest jsonObjReq = new JsonObjectRequest(
        Request.Method.GET,
        "URL with JSON data",
        new Response.Listener<JSONObject>() {
             @Override
             public void onResponse(JSONObject response) {
                 try {
                      //Your code goes here      
                 } catch (JSONException e) {
                      Log.e("TAG", e.toString());
                 }
             }
        }, 
        new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
            }
        });
    // Adding request to request queue
    AppController.getInstance().addToRequestQueue(jsonObjReq);
}

ただし、サーバーにデータを投稿する場合は、HashMapを作成し、Volleyライブラリがこれらのキー/ペアの値をJSONオブジェクトに変換してからサーバーに投稿する必要があります。例を示します。

final HashMap<String, String> postParams = new HashMap<String, String>();
postParams.put("username", username);
postParams.put("password", password);

Response.Listener<JSONObject> listener;
Response.ErrorListener errorListener;
final JSONObject jsonObject = new JSONObject(postParams);

JsonObjectRequest jsonObjReq = new JsonObjectRequest(
    "YOUR URL WITH JSON DATA", 
    jsonObject,
    new com.android.volley.Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {
            Log.d("TAG", response.toString());
            try {
                if (response.getString("status").equals("fail")) {

                } else if (response.getString("status").equals("success")) {

                } catch (JSONException e) {
                     Log.e("TAG", e.toString())
                }
            }
        }, 
        new com.android.volley.Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
             //VolleyLog.d("TAG", "Error: " + error.getMessage());
            //pDialog.dismiss();

        }
    }) {
        @Override
        public String getBodyContentType() {
            return "application/json; charset=utf-8";
        }
    };
    // Adding request to request queue
    AppController.getInstance().addToRequestQueue(jsonObjReq, tag_json_obj);

    VolleySingleton.getInstance(getApplicationContext()).
    addToRequestQueue(jsonObjRequest);
 }

0

Volleyプロジェクトのクローンを作成し、Gradleでライブラリをビルドできるようにする構成ファイルを追加しました。

これにより、ライブラリをローカルのMavenリポジトリにインストールし、AndroidプロジェクトからGradle経由で参照できます。

必要条件

  1. メイベン
  2. Gradle

使い方

  1. クローン 私のリポジトリ
  2. Volleyライブラリをビルドしてインストールする
  3. Androidプロジェクトでライブラリを参照する

バグの修正

ライブラリに改良されたさまざまなクローンがあることを覚えておいてください。それらを統合し、ライブラリのプライベート拡張バージョンをコンパイルする必要があるかもしれません。

利点

ライブラリ自体に加えて、ビルドスクリプトはJavaDocを生成アーカイブソースします


0

サポートライブラリが2行目に表示されているときに問題が発生しました。これら2つのステートメントを並べ替えることは私にとってはうまくいきました。

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.mcxiaoke.volley:library:1.0.6'
    compile 'com.android.support:support-v4:20.+'
}

0

Volleyは、現在のプロジェクトリポジトリにgitサブモジュールとして追加できます。このgitサブモジュールは、Volleyの公式gitリポジトリをポイントします。したがって、サブモジュールポインターを更新するだけで、公式のgitリポジトリから更新を取得できます。

さらに、メインプロジェクトでライブラリモジュールとしてVolleyを追加すると、簡単にカスタマイズできます。デバッグの目的にも非常に役立ちます。

これを実現するには、以下の手順に従います。

ステップI:

AndroidアプリケーションプロジェクトGITリポジトリのサブモジュールとしてボレーを追加します。git submodule add -b master https://android.googlesource.com/platform/frameworks/volley Libraries / Volley

ステップII:

settings.gradleに以下を追加して、volleyをスタジオプロジェクトモジュールとして追加します。include :: Volley 'project(':Volley ')。projectDir = new File(' ../ Libraries / Volley ')

ステップIII:

app / build.gradleで、次の行を追加して、Volley compile project( ':Volley')をコンパイルします

それだけです!Volleyがプロジェクトに追加されました。

Googleの公式Volleyのリポジトリから最新のコードを取得するたびに、次のコマンドを実行します

git submodule foreach git pull

詳細情報:https : //gitsubmoduleasandroidtudiomodule.blogspot.in/

GIT Repoサンプルコード:https : //github.com/arpitratan/AndroidGitSubmoduleAsModule


0

今後の読者のために

私はボレーと仕事をするのが大好きです。開発時間を節約するために、プロジェクトでVolleyをセットアップするための小さな便利なライブラリGloxey Netwok Managerを作成しようとしました。JSONパーサーが含まれていますと、ネットワークの可用性の確認に役立つ他のさまざまなメソッドがます。

ライブラリはConnectionManager.classVolley StringリクエストとVolley JSONリクエストに使用できるさまざまなメソッドを提供しています。ヘッダーの有無にかかわらず、GET、PUT、POST、DELETEのリクエストを行うことができます。ここで完全なドキュメントを読むことができます

この行をgradleファイルに入れてください。

依存関係{

   compile 'io.gloxey.gnm:network-manager:1.0.1'

}

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.