Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.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 http响应出现堆栈溢出错误_Java_Android_Backgroundworker_Stack Overflow - Fatal编程技术网

Java http响应出现堆栈溢出错误

Java http响应出现堆栈溢出错误,java,android,backgroundworker,stack-overflow,Java,Android,Backgroundworker,Stack Overflow,我有一个后台工作人员从互联网上获取图像 现在,我在尝试获取捕获后的图像时遇到堆栈溢出 这是我的密码 提取功能 private InputStream fetch(String urlString) throws MalformedURLException, IOException, IllegalStateException, SocketTimeoutException { HttpClient httpClient = new DefaultHttpClient();

我有一个后台工作人员从互联网上获取图像

现在,我在尝试获取捕获后的图像时遇到堆栈溢出

这是我的密码

提取功能

    private InputStream fetch(String urlString) throws MalformedURLException, IOException, IllegalStateException, SocketTimeoutException { 

    HttpClient httpClient = new DefaultHttpClient(); 

    HttpParams params = httpClient.getParams();
    HttpConnectionParams.setConnectionTimeout(params, TIME_OUT);
    HttpConnectionParams.setSoTimeout(params, TIME_OUT);

    HttpGet request = new HttpGet(urlString); 
    HttpResponse response = httpClient.execute(request); 

    return response.getEntity().getContent(); 
} 
背景工作者

static int tryouts = 0;
/**
 * Getting the bitmap from the web asynchronously 
 * @author orel.z
 * @version 1.0
 */
class BitmapWorkerTask extends AsyncTask<String, Void, Bitmap>
{
    @Override
    protected Bitmap doInBackground(String... params) {

        Bitmap bitmap = null;

        try
        {
            InputStream is = fetch(params[0]);
            bitmap = BitmapFactory.decodeStream(is);
            is.close();
            is = null;
            tryouts = 0;
        }
        catch(IOException exception)
        {
            if(tryouts < 3)
            {
                doInBackground(params);
                tryouts++;
            }
            else
            {
                tryouts = 0;
                bitmap = null;
            }
        }
        catch (OutOfMemoryError e) 
        {
            if(tryouts < 3)
            {
                System.gc();
                doInBackground(params);
                tryouts++;
            }
            else
            {
                tryouts = 0;
                bitmap = null;
            }
        }

        return bitmap;
    }
}
静态int试用=0;
/**
*从web异步获取位图
*@author orel.z
*@version 1.0
*/
类BitmapWorkerTask扩展了AsyncTask
{
@凌驾
受保护位图doInBackground(字符串…参数){
位图=空;
尝试
{
InputStream is=fetch(参数[0]);
位图=BitmapFactory.decodeStream(is);
is.close();
is=null;
试用期=0;
}
捕获(IOException异常)
{
如果(试用期<3)
{
doInBackground(params);
试用++;
}
其他的
{
试用期=0;
位图=空;
}
}
捕获(OutOfMemory错误)
{
如果(试用期<3)
{
gc();
doInBackground(params);
试用++;
}
其他的
{
试用期=0;
位图=空;
}
}
返回位图;
}
}
这是日志

02-26 15:26:31.616: E/Crittercism(16936): java.lang.StackOverflowError
02-26 15:26:31.616: E/Crittercism(16936):              at     java.lang.String.substring(String.java:1436)
02-26 15:26:31.616: E/Crittercism(16936):              at java.util.regex.Splitter.finishSplit(Splitter.java:105)
02-26 15:26:31.616: E/Crittercism(16936):              at java.util.regex.Splitter.fastSplit(Splitter.java:75)
02-26 15:26:31.616: E/Crittercism(16936):              at java.lang.String.split(String.java:1831)
02-26 15:26:31.616: E/Crittercism(16936):              at java.lang.String.split(String.java:1813)
02-26 15:26:31.616: E/Crittercism(16936):              at java.net.URI.isValidDomainName(URI.java:577)
02-26 15:26:31.616: E/Crittercism(16936):              at java.net.URI.isValidHost(URI.java:545)
02-26 15:26:31.616: E/Crittercism(16936):              at java.net.URI.parseAuthority(URI.java:491)
02-26 15:26:31.616: E/Crittercism(16936):              at java.net.URI.parseURI(URI.java:409)
02-26 15:26:31.616: E/Crittercism(16936):              at java.net.URI.<init>(URI.java:204)
02-26 15:26:31.616: E/Crittercism(16936):              at org.apache.http.impl.conn.ProxySelectorRoutePlanner.determineProxy(ProxySelectorRoutePlanner.java:198)
02-26 15:26:31.616: E/Crittercism(16936):              at org.apache.http.impl.conn.ProxySelectorRoutePlanner.determineRoute(ProxySelectorRoutePlanner.java:150)
02-26 15:26:31.616: E/Crittercism(16936):              at org.apache.http.impl.client.DefaultRequestDirector.determineRoute(DefaultRequestDirector.java:596)
02-26 15:26:31.616: E/Crittercism(16936):              at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:293)
02-26 15:26:31.616: E/Crittercism(16936):              at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
02-26 15:26:31.616: E/Crittercism(16936):              at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
02-26 15:26:31.616: E/Crittercism(16936):              at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
02-26 15:26:31.616: E/Crittercism(16936):              at com.tvincisdk.utils.ImageManager.fetch(ImageManager.java:405)
02-26 15:26:31.616: E/Crittercism(16936):              at com.tvincisdk.utils.ImageManager.access$3(ImageManager.java:396)
02-26 15:26:31.616: E/Crittercism(16936):              at com.tvincisdk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:319)
02-26 15:26:31.616: E/Crittercism(16936):              at com.tvincisdk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:329)
02-26 15:26:31.616: E/Crittercism(16936):              at com.tvincisdk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:329)
02-26 15:26:31.616: E/Crittercism(16936):              at com.tvincisdk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:329)
02-26 15:26:31.616: E/Crittercism(16936):              at com.tvincisdk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:329)
02-26 15:26:31.616: E/Crittercism(16936):              at com.tvincisdk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:329)
02-26 15:26:31.616: E/Crittercism(16936):              at com.tvincisdk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:329)
02-26 15:26:31.616: E/Crittercism(16936):              at com.tvincisdk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:329)
02-26 15:26:31.616: E/Crittercism(16936):              at com.tvincisdk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:329)
02-26 15:26:31.616: E/Crittercism(16936):              at com.tvincisdk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:329)
02-26 15:26:31.616: E/Crittercism(16936):              at com.tvincisdk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:329)
02-26 15:26:31.616: E/Crittercism(16936):              at com.tvincisdk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:329)
02-26 15:26:31.616: E/Crittercism(16936):              at com.tvincisdk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:329)
02-26 15:26:31.616: E/Crittercism(16936):              at com.tvincisdk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:329)
02-26 15:26:31.616: E/Crittercism(16936):              at com.tvincisdk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:329)
02-26 15:26:31.616: E/Crittercism(16936):              at com.tvincisdk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:329)
02-26 15:26:31.616: E/Crittercism(16936):              at com.tvincisdk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:329)
02-26 15:26:31.616: E/Crittercism(16936):              at com.tvincisdk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:329)
02-26 15:26:31.616: E/Crittercism(16936):              at com.tvincisdk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:329)
02-26 15:26:31.616: E/Crittercism(16936):              at com.tvincisdk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:329)
02-26 15:26:31.616: E/Crittercism(16936):              at com.tvincisdk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:329)
02-26 15:26:31.616: E/Crittercism(16936):              at com.tvincisdk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:329)
02-26 15:26:31.616: E/Crittercism(16936):              at com.tvincisdk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:329)
02-26 15:26:31.616: E/Crittercism(16936):              at com.tvincisdk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:329)
02-26 15:26:31.616: E/Crittercism(16936):              at com.tvincisdk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:329)
02-26 15:26:31.616: E/Crittercism(16936):              at com.tvincisdk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:329)
02-26 15:26:31.616: E/Crittercism(16936):              at com.tvincisdk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:329)
02-26 15:26:31.616: E/Crittercism(16936):              at com.tvincisdk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:329)
02-26 15:26:31.616: E/Crittercism(16936):              at com.tvincisdk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:329)
02-26 15:26:31.616: E/Crittercism(16936):              at com.tvincisdk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager
02-26 15:26:31.616:E/Critercism(16936):java.lang.StackOverflower错误
02-26 15:26:31.616:E/Critercism(16936):at java.lang.String.substring(String.java:1436)
02-26 15:26:31.616:E/Critercism(16936):位于java.util.regex.Splitter.finishSplit(Splitter.java:105)
02-26 15:26:31.616:E/Critercism(16936):位于java.util.regex.Splitter.fastSplit(Splitter.java:75)
02-26 15:26:31.616:E/Critercism(16936):at java.lang.String.split(String.java:1831)
02-26 15:26:31.616:E/Critercism(16936):at java.lang.String.split(String.java:1813)
02-26 15:26:31.616:E/Critercism(16936):位于java.net.URI.isvalidDomain(URI.java:577)
02-26 15:26:31.616:E/critercism(16936):位于java.net.URI.isValidHost(URI.java:545)
02-26 15:26:31.616:E/critercism(16936):位于java.net.URI.parseAuthority(URI.java:491)
02-26 15:26:31.616:E/Critercism(16936):位于java.net.URI.parseURI(URI.java:409)
02-26 15:26:31.616:E/Critercism(16936):位于java.net.URI(URI.java:204)
02-26 15:26:31.616:E/Critercism(16936):位于org.apache.http.impl.conn.ProxySelectorRoutePlanner.determineProxySelectorRoutePlanner.java:198
02-26 15:26:31.616:E/Critercism(16936):位于org.apache.http.impl.conn.ProxySelectorRoutePlanner.determinerout(ProxySelectorRoutePlanner.java:150)
02-26 15:26:31.616:E/Critercism(16936):位于org.apache.http.impl.client.DefaultRequestDirector.determineRoute(DefaultRequestDirector.java:596)
02-26 15:26:31.616:E/Critercism(16936):位于org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:293)
02-26 15:26:31.616:E/Critercism(16936):位于org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
02-26 15:26:31.616:E/Critercism(16936):位于org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
02-26 15:26:31.616:E/Critercism(16936):位于org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
02-26 15:26:31.616:E/Critercism(16936):位于com.tvincidk.utils.ImageManager.fetch(ImageManager.java:405)
02-26 15:26:31.616:E/critercism(16936):在com.tvincidk.utils.ImageManager.access$3(ImageManager.java:396)
02-26 15:26:31.616:E/Critercism(16936):在com.tvincidk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:319)
02-26 15:26:31.616:E/Critercism(16936):在com.tvincidk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:329)
02-26 15:26:31.616:E/Critercism(16936):在com.tvincidk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:329)
02-26 15:26:31.616:E/Critercism(16936):在com.tvincidk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:329)
02-26 15:26:31.616:E/Critercism(16936):在com.tvincidk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:329)
02-26 15:26:31.616:E/Critercism(16936):在com.tvincidk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:329)
02-26 15:26:31.616:E/Critercism(16936):在com.tvincidk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:329)
02-26 15:26:31.616:E/Critercism(16936):在com.tvincidk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:329)
02-26 15:26:31.616:E/Critercism(16936):在com.tvincidk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:329)
02-26 15:26:31.616:E/Critercism(16936):在com.tvincidk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:329)
02-26 15:26:31.616:E/Critercism(16936):在com.tvincidk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:329)
02-26 15:26:31.616:E/Critercism(16936):在com.tvincidk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:329)
02-26 15:26:31.616:E/Critercism(16936):在com.tvincidk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:329)
02-26 15:26:31.616:E/Critercism(16936):在com.tvincidk.utils.ImageManager$BitmapWorkerTask.doInBackground(ImageManager.java:329)
02-26 15:26:31.616:E/Critercism(16936):在com.tvincidk.utils.ImageManager$BitmapWorkerTask.doInBa
 tryouts++;
 return doInBackground(params);
class BitmapWorkerTask extends AsyncTask<String, Void, Bitmap>
{
    @Override
    protected Bitmap doInBackground(String... params) {

        Bitmap bitmap = null;

        for (int tryouts=0; tryouts<3; tryouts++) {
            try
            {
                InputStream is = fetch(params[0]);
                bitmap = BitmapFactory.decodeStream(is);
                is.close();
                is = null;

                break;
            }
            catch(IOException exception)
            {
                bitmap = null;
            }
            catch (OutOfMemoryError e) 
            {
                System.gc();
                bitmap = null;
            }
        }

        return bitmap;
    }
}