web-dev-qa-db-ja.com

Volley Android Networking Library

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

  1. このライブラリは、JavaプロジェクトまたはAndroidだけで使用できますか?
  2. 複数のブランチ here があり、どのブランチを開始するかについてのドキュメントはありません。どのブランチから始めるべきですか?
  3. このライブラリを自分のプロジェクトにどのように統合しますか?より良いアプローチ:Volleyをスタンドアロンライブラリプロジェクトとして作成し、jarをスピンしてプロジェクトに配置するか、プロジェクト内のすべてのソースコードをコピーしますか?
120
bianca
$ git clone https://Android.googlesource.com/platform/frameworks/volley
$ cd volley
$ Android update project -p .
$ ant jar

次に、bin/volley.jarlibs/フォルダーにコピーして、すぐに始めましょう!

ソース

205
Kevin

Volleyレッスン では、GoogleがVolleyをプロジェクトにAndroid Libraryプロジェクトまたは.jarファイルとして追加するように指示します。

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

注:

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


Android Studio:

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

Eclipse:

  1. Gitを介してVolleyリポジトリを複製します。
  2. プロジェクトをEclipseにインポートします。
  3. プロジェクトを右クリックして、Export ...を選択します
  4. Java/JARファイルを選択します。
  5. 興味があるのはsrcフォルダーのみで、それ以外は何もありません。それだけが選択されていることを確認する最も簡単な方法は、プロジェクトの選択を解除してから、srcフォルダーを選択することです。
  6. 生成されたクラスファイルとリソースをエクスポートするオプションをチェックしてください。
  7. オプション:Javadocを表示する場合は、Export Java source files resourcesも選択します。
  8. JARファイルを作成し、libs/フォルダーに配置します。
73
Itai Hanski

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

Android固有のクラスに依存するため、Android専用です。これは、ソースコードを調べることで RequestQueueなど のようにわかります。

2)ここには複数のブランチがありますが、どのブランチから始めるかについてのドキュメントはありません。どのブランチから始めるべきですか?

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

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

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

48
CommonsWare

volley.jar をダウンロードできます

ソース: AndroidHive

theVolley.jarをlibsにコピーします

次に

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

enter image description here

41
Mina Gabriel

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

dependencies {
    implementation 'com.Android.volley:volley:1.1.0'
}
25
Sam Stern

UPDATE:Volleyは公式になり、JCenterから入手できます。インポートする方法は次のとおりです。

compile 'com.Android.volley:volley:1.0.0'

非推奨の方法:

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

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

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

16
C0D3LIC1OU5

たくさんの方法

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

ライブラリとして追加 クイックソリューション)

  1. 以下からダウンロードしてください:---(androidhive
  2. [MyProjectPath]/app/libs/フォルダーに配置します
  3. Android St​​udio right-clickで、Add As Library...を選択します

Gitのソースファイル かなり公式なソリューション)

  1. ---(git client をダウンロード/インストールします(まだシステムにインストールしていない場合)(git clone https://github.com/git/gitを介して他にアクセスしてください...悪いものを探してください、しかし抵抗できませんでした^^)
  2. git clone https://Android.googlesource.com/platform/frameworks/volleyを実行します
  3. [path_where_you_typed_git_clone]/volley/src内からcomフォルダーをプロジェクトのapp/src/main/Javaフォルダーにコピーします(または、comフォルダーが既にある場合は、代わりに統合します!! ;-))

    ファイルはAndroid St​​udioにすぐに表示されます。 Eclipseの場合は、srcフォルダーでright-clickを選択し、最初にrefresh(またはF5)を押す必要があります。

    Git経由で行うことは、Androidチュートリアルで公式に提案されていることです( look here )。

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

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

        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'

13
Levit

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

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

そうすれば、Volleyコードベースが更新されるため、更新が簡単になります...

git submodule git pull

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

11
Simon.Ponder

これは、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ヘッダーを正しく設定することを忘れないでください

8
user1234813

Android St​​udio 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.+'
}
2
Sotti

Android St​​udioを使用している場合は、この行を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);
 }
1
Theo

Eclipse Lunaを使用するには:

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

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

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

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

  • RequestQueue
  • JsonArrayRequest
  • JsonObjectRequest

最初にvolleyを使用するには、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
user98239820

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

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

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

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

 RequestQueue request

Android St​​udioがRequestQueue (com.Android.volley)の完了を求めるプロンプトを表示します。

1
Brian Marick

それがあなたの好みであれば、ビルドされたデバッグaarを取得するのも非常に簡単です。

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

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

1
Chris

Volleyプロジェクト を複製し、Gradleでライブラリを構築できるようにする構成ファイルを追加しました。

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

必要条件

  1. メイヴン
  2. グラドル

使い方

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

バグの修正

ライブラリを改善したさまざまなクローン があることに注意してください。それらを統合し、ライブラリのプライベート拡張バージョンをコンパイルする必要がある場合があります。

利点

ライブラリ自体に加えて、ビルドスクリプトはJavaDocおよびsources archivesを生成します。

0
JJD

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で次を追加して、ボレーをスタジオプロジェクトモジュールとして追加します。 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
Arpit Ratan

サポートライブラリが2行目にリストされているときに問題に直面しました。これらの2つのステートメントを並べ替えることは私のために働いた。

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

将来の読者のために

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

ライブラリには、Volley StringおよびVolley JSONリクエストのさまざまなメソッドが含まれるConnectionManager.classが用意されていますご利用いただけます。ヘッダーの有無にかかわらず、GET、PUT、POST、DELETEのリクエストを行うことができます。完全なドキュメントを読むことができます こちら

この行をgradleファイルに入れるだけです。

依存関係{

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

}

0