2017-12-29 43 views
0

私のvpsと私のアンドロイドアプリでjsonファイルをホストしています。ユーザーのデバイスに保存するよう要求しています。それはAndroidのボレーは2MBのjsonファイルを処理できません

正確には2.2のJSONメガバイトのファイルです。ここに私のコードです:

public void sendJSONRequest(final String url) { 
    JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Request.Method.GET, url + "games.json", null, new Response.Listener<JSONArray>() { 
     @Override 
     public void onResponse(JSONArray response) { 
      Toast.makeText(Main2Activity.this, "Cool", Toast.LENGTH_SHORT).show(); 
      // Log.d(TAG,"PLS: " + response); 
      // mUpcomingGameReleasesList gets filled/appended with new data here 
      // mUpcomingGameReleasesList.addAll(parseJSONResponse(response)); 
      // mUpcomingGamesAdapter.setData(mUpcomingGameReleasesList); 
     } 
    }, new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 
      Toast.makeText(Main2Activity.this, error.getMessage(), Toast.LENGTH_SHORT).show(); 
     } 
    }); 
    mRequestQueue.add(jsonArrayRequest); 
} 

は、ポリシーを再試行してみてください//あなた

+0

実際、volleyは大きなデータには使用されません。volleyはStringまたはJsonまたは他のタイプに変換された後、メモリー内のbyte []としてHTTPレスポンスの内容全体を格納します。代わりにokhttp。 –

+0

OkHttpです。私はそれを試してみる、ありがとう –

答えて

0

ありがとうございます。

jsonArrayRequest.setRetryPolicy(new DefaultRetryPolicy(
        30000, 
        DefaultRetryPolicy.DEFAULT_MAX_RETRIES, 
        DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); 

     mRequestQueue.add(jsonArrayRequest); 
0

その後、タイムアウトを長くして、再試行してくださいマニフェスト

<application 
    android:name="" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    **android:largeHeap="true"** 
    ... 
</application> 

でこれを追加!!

関連する問題