Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android位图下载_Java_Android_Android Asynctask - Fatal编程技术网

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)是的,请查看我的答案;)