я следующий код: -Из памяти во время doinbackground
public class ByState extends Fragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.by_state, container, false);
new GetAllStates().execute("dummy");
return rootView;
}
}
class GetAllStates extends AsyncTask<String,String,String> {
@Override
protected String doInBackground(String... key) {
StringBuffer response = new StringBuffer();
try {
String url = "http://congress-search-148802.appspot.com/getData.php?value=legislator";
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
} catch (Exception e) {
Log.w("Error", e.getMessage());
}
return response.toString();
}
@Override
protected void onPostExecute(String groupResponse) {
Log.d("My message",groupResponse);
try {
JSONArray groupList = new JSONArray(groupResponse);
for(int i=0;i<groupList.length();i++){
JSONObject groupInfo = groupList.getJSONObject(i);
Log.d("BioguideID ",groupInfo.getString("bioguide_id"));
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}
Я не делаю много, но до сих пор я получаю следующее сообщение об ошибке: -
1-15 00:05:02.793 27120-27157/com.app.congress.congressapp E/art: Throwing OutOfMemoryError "Failed to allocate a 203542 byte allocation with 150292 free bytes and 146KB until OOM"
11-15 00:05:02.803 27120-27157/com.app.congress.congressapp E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1
Process: com.app.congress.congressapp, PID: 27120
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:304)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.lang.OutOfMemoryError: Failed to allocate a 203542 byte allocation with 150292 free bytes and 146KB until OOM
at java.lang.AbstractStringBuilder.enlargeBuffer(AbstractStringBuilder.java:95)
at java.lang.AbstractStringBuilder.append0(AbstractStringBuilder.java:125)
at java.lang.StringBuilder.append(StringBuilder.java:271)
at java.io.BufferedReader.readLine(BufferedReader.java:414)
at com.app.congress.congressapp.GetAllStates.doInBackground(ByState.java:46)
at com.app.congress.congressapp.GetAllStates.doInBackground(ByState.java:34)
at android.os.AsyncTask$2.call(AsyncTask.java:292)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
Я попытался увеличить куча в большую кучу, которая не рекомендуется, но все же я получаю эту ошибку. Я довольно новичок в этом, может кто-нибудь указать, куда я иду не так?
Вы используете устройство или AVD? – zerocool
Вам нужно работать над полным ответом? Вы не можете использовать файл – AxelH
Я использую AVD в настоящее время. – Anirban