Java Android位图下载
下载图像时出现以下异常Java Android位图下载,java,android,android-asynctask,Java,Android,Android Asynctask,下载图像时出现以下异常 > 10-19 13:18:49.421: E/AndroidRuntime(2259): FATAL EXCEPTION: AsyncTask #4 10-19 13:18:49.421: E/AndroidRuntime(2259): java.lang.RuntimeException: An error occured while executing doInBackground() 10-19 13:18:49.421: E/AndroidRu
> 10-19 13:18:49.421: E/AndroidRuntime(2259): FATAL EXCEPTION: AsyncTask #4
10-19 13:18:49.421: E/AndroidRuntime(2259): java.lang.RuntimeException: An error occured while executing doInBackground()
10-19 13:18:49.421: E/AndroidRuntime(2259): at android.os.AsyncTask$3.done(AsyncTask.java:299)
10-19 13:18:49.421: E/AndroidRuntime(2259): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
10-19 13:18:49.421: E/AndroidRuntime(2259): at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
10-19 13:18:49.421: E/AndroidRuntime(2259): at java.util.concurrent.FutureTask.run(FutureTask.java:239)
10-19 13:18:49.421: E/AndroidRuntime(2259): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
10-19 13:18:49.421: E/AndroidRuntime(2259): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
10-19 13:18:49.421: E/AndroidRuntime(2259): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
10-19 13:18:49.421: E/AndroidRuntime(2259): at java.lang.Thread.run(Thread.java:856)
10-19 13:18:49.421: E/AndroidRuntime(2259): Caused by: java.lang.OutOfMemoryError
10-19 13:18:49.421: E/AndroidRuntime(2259): at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
10-19 13:18:49.421: E/AndroidRuntime(2259): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:529)
10-19 13:18:49.421: E/AndroidRuntime(2259): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:601)
10-19 13:18:49.421: E/AndroidRuntime(2259): at com.yemektarifleri.monu.CategoryList.downloadBitmap(CategoryList.java:356)
10-19 13:18:49.421: E/AndroidRuntime(2259): at com.yemektarifleri.monu.CategoryList$BitmapDownloaderTask.doInBackground(CategoryList.java:299)
10-19 13:18:49.421: E/AndroidRuntime(2259): at com.yemektarifleri.monu.CategoryList$BitmapDownloaderTask.doInBackground(CategoryList.java:1)
10-19 13:18:49.421: E/AndroidRuntime(2259): at android.os.AsyncTask$2.call(AsyncTask.java:287)
10-19 13:18:49.421: E/AndroidRuntime(2259): at java.util.concurrent.FutureTask.run(FutureTask.java:234)
10-19 13:18:49.421: E/AndroidRuntime(2259): ... 4 more
@Override
protected ArrayList<Product> doInBackground(String... params) {
ArrayList<Product> productList = new ArrayList<Product>();
try {
String ret = getUrlString(params[0]);
ret = ret.trim();
JSONObject jsonObj = new JSONObject(ret);
JSONArray products = jsonObj.getJSONArray("item");
JSONObject tmp;
for(int i=0; i<products.length(); i++){
tmp = products.getJSONObject(i);
Product _product = new Product(
tmp.getString("foodId"),
tmp.getString("yemekadi"),
tmp.getString("topsure"),
tmp.getString("kackisi"),
tmp.getString("foodimg")
);
productList.add(_product);
foodIds.add(tmp.getString("foodId"));
}
} catch (SocketTimeoutException e) {
e.printStackTrace();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
return productList;
}
public Bitmap downloadBitmap(String url) throws MalformedURLException, IOException {
final AndroidHttpClient client = AndroidHttpClient.newInstance("Android");
final HttpGet getRequest = new HttpGet(url);
try {
HttpResponse response = client.execute(getRequest);
final int statusCode = response.getStatusLine().getStatusCode();
if (statusCode != HttpStatus.SC_OK) {
return null;
}
final HttpEntity entity = response.getEntity();
if (entity != null) {
InputStream inputStream = null;
try {
inputStream = entity.getContent();
final Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
return bitmap;
} finally {
if (inputStream != null) {
inputStream.close();
}
entity.consumeContent();
}
}
} catch (MalformedURLException e) {
getRequest.abort();
e.printStackTrace();
} catch (IOException e) {
getRequest.abort();
e.printStackTrace();
} finally {
if (client != null) {
client.close();
}
}
return null;
}
>10-19 13:18:49.421:E/AndroidRuntime(2259):致命异常:AsyncTask#4
10-19 13:18:49.421:E/AndroidRuntime(2259):java.lang.RuntimeException:执行doInBackground()时出错
10-19 13:18:49.421:E/AndroidRuntime(2259):在android.os.AsyncTask$3.done(AsyncTask.java:299)
10-19 13:18:49.421:E/AndroidRuntime(2259):在java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
10-19 13:18:49.421:E/AndroidRuntime(2259):在java.util.concurrent.FutureTask.setException(FutureTask.java:219)
10-19 13:18:49.421:E/AndroidRuntime(2259):在java.util.concurrent.FutureTask.run(FutureTask.java:239)
10-19 13:18:49.421:E/AndroidRuntime(2259):在android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
10-19 13:18:49.421:E/AndroidRuntime(2259):位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
10-19 13:18:49.421:E/AndroidRuntime(2259):位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
10-19 13:18:49.421:E/AndroidRuntime(2259):在java.lang.Thread.run(Thread.java:856)
10-19 13:18:49.421:E/AndroidRuntime(2259):由以下原因引起:java.lang.OutOfMemoryError
10-19 13:18:49.421:E/AndroidRuntime(2259):在android.graphics.BitmapFactory.NativeDecodeseam(本机方法)
10-19 13:18:49.421:E/AndroidRuntime(2259):在android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:529)
10-19 13:18:49.421:E/AndroidRuntime(2259):在android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:601)上
10-19 13:18:49.421:E/AndroidRuntime(2259):在com.yemektarifleri.monu.CategoryList.downloadd位图(CategoryList.java:356)
10-19 13:18:49.421:E/AndroidRuntime(2259):在com.yemektarifleri.monu.CategoryList$BitmapDownloaderTask.doInBackground(CategoryList.java:299)
10-19 13:18:49.421:E/AndroidRuntime(2259):在com.yemektarifleri.monu.CategoryList$BitmapDownloaderTask.doInBackground(CategoryList.java:1)
10-19 13:18:49.421:E/AndroidRuntime(2259):在android.os.AsyncTask$2.call(AsyncTask.java:287)
10-19 13:18:49.421:E/AndroidRuntime(2259):在java.util.concurrent.FutureTask.run(FutureTask.java:234)
10-19 13:18:49.421:E/AndroidRuntime(2259):。。。4更多
@凌驾
受保护的ArrayList doInBackground(字符串…参数){
ArrayList productList=新的ArrayList();
试一试{
String ret=getUrlString(参数[0]);
ret=ret.trim();
JSONObject jsonObj=新的JSONObject(ret);
JSONArray products=jsonObj.getJSONArray(“项目”);
JSONObject tmp;
对于(int i=0;i您将遇到位图的OutOfMemory异常,因此您应该看看如果我们没有看到任何代码,我们应该如何帮助您?com.yemektarifleri.monu.CategoryList$BitmapDownloaderTask.doInBackground(CategoryList.java:1)是的,请查看我的答案;)