首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >添加连接超时和套接字超时时出现错误消息"error occured executing“

添加连接超时和套接字超时时出现错误消息"error occured executing“
EN

Stack Overflow用户
提问于 2014-11-10 23:32:49
回答 1查看 188关注 0票数 0

在http请求中添加连接超时和套接字超时时,我收到错误消息"error occured executing doInBackground“。如下所示:

代码语言:javascript
运行
复制
11-10 22:15:37.044: E/JavaBinder(8027): !!! FAILED BINDER TRANSACTION !!!
11-10 22:15:49.934: E/AndroidRuntime(8027): FATAL EXCEPTION: AsyncTask #3
11-10 22:15:49.934: E/AndroidRuntime(8027): Process: com.ad.tanker, PID: 8027
11-10 22:15:49.934: E/AndroidRuntime(8027): java.lang.RuntimeException: An error occured while executing doInBackground()
11-10 22:15:49.934: E/AndroidRuntime(8027):     at android.os.AsyncTask$3.done(AsyncTask.java:300)
11-10 22:15:49.934: E/AndroidRuntime(8027):     at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
11-10 22:15:49.934: E/AndroidRuntime(8027):     at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
11-10 22:15:49.934: E/AndroidRuntime(8027):     at java.util.concurrent.FutureTask.run(FutureTask.java:242)
11-10 22:15:49.934: E/AndroidRuntime(8027):     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
11-10 22:15:49.934: E/AndroidRuntime(8027):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
11-10 22:15:49.934: E/AndroidRuntime(8027):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
11-10 22:15:49.934: E/AndroidRuntime(8027):     at java.lang.Thread.run(Thread.java:841)
11-10 22:15:49.934: E/AndroidRuntime(8027): Caused by: java.lang.NullPointerException: println needs a message
11-10 22:15:49.934: E/AndroidRuntime(8027):     at android.util.Log.println_native(Native Method)
11-10 22:15:49.934: E/AndroidRuntime(8027):     at android.util.Log.e(Log.java:232)
11-10 22:15:49.934: E/AndroidRuntime(8027):     at com.ad.tanker.ViewFillOrder$ImageUploadTask.doInBackground(ViewFillOrder.java:1405)
11-10 22:15:49.934: E/AndroidRuntime(8027):     at com.ad.tanker.ViewFillOrder$ImageUploadTask.doInBackground(ViewFillOrder.java:1)
11-10 22:15:49.934: E/AndroidRuntime(8027):     at android.os.AsyncTask$2.call(AsyncTask.java:288)
11-10 22:15:49.934: E/AndroidRuntime(8027):     at java.util.concurrent.FutureTask.run(FutureTask.java:237)
11-10 22:15:49.934: E/AndroidRuntime(8027):     ... 4 more

这是我的代码

代码语言:javascript
运行
复制
class ImageUploadTask extends AsyncTask <Void, Void, String>{
        String err=null;
        @Override
        protected String doInBackground(Void... unsued) {               
            try {
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                var_date_confirm = sdf.format(new Date());      

                ByteArrayOutputStream bos_1 = new ByteArrayOutputStream();
                ByteArrayOutputStream bos_2 = new ByteArrayOutputStream();
                ByteArrayOutputStream bos_3 = new ByteArrayOutputStream();
                bitmap_photo_1.compress(CompressFormat.JPEG, 100, bos_1);
                bitmap_photo_2.compress(CompressFormat.JPEG, 100, bos_2);
                bitmap_photo_3.compress(CompressFormat.JPEG, 100, bos_3);
                byte[] data_1 = bos_1.toByteArray();
                byte[] data_2 = bos_2.toByteArray();
                byte[] data_3 = bos_3.toByteArray();

                HttpParams httpParameters = new BasicHttpParams();
                // Set the timeout in milliseconds until a connection is established.
                int timeoutConnection = 5000;
                HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection);
                // Set the default socket timeout (SO_TIMEOUT) 
                // in milliseconds which is the timeout for waiting for data.
                int timeoutSocket = 5000;
                HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket);

                HttpClient httpClient = new DefaultHttpClient(httpParameters);              
                HttpPost postRequest = new HttpPost(Variabel.URL_CONFIRM_ACTION);               
                ByteArrayBody bab_1 = new ByteArrayBody(data_1,var_photo_1);
                ByteArrayBody bab_2 = new ByteArrayBody(data_2,var_photo_2);
                ByteArrayBody bab_3 = new ByteArrayBody(data_3,var_photo_3);                
                MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);                   
                reqEntity.addPart(Variabel.KEY_ORDER_ID, new StringBody(var_order_id.toString().trim()));
                reqEntity.addPart(Variabel.KEY_PHOTO_1, bab_1);
                reqEntity.addPart(Variabel.KEY_PHOTO_1_TIME, new StringBody(var_photo_1_time.toString().trim()));
                reqEntity.addPart(Variabel.KEY_PHOTO_1_LOCATION_LONGITUDE, new StringBody(var_photo_1_location_longitude.toString().trim()));
                reqEntity.addPart(Variabel.KEY_PHOTO_1_LOCATION_LATITUDE, new StringBody(var_photo_1_location_latitude.toString().trim()));
                postRequest.setEntity(reqEntity);
                HttpResponse response = httpClient.execute(postRequest);
                BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(),"UTF-8"));
                String sResponse;
                StringBuilder s = new StringBuilder();

                while ((sResponse = reader.readLine()) != null) {
                    s = s.append(sResponse);
                }

                return s.toString().trim();

            } catch (Exception e) {

                err="error"+e.getMessage();
                Log.e(e.getClass().getName(), e.getMessage());

                return e.getMessage();
            }               
        }

那该怎么解决呢?对不起,我的英语

EN

回答 1

Stack Overflow用户

发布于 2014-11-10 23:37:44

您应该查找堆栈中的第一个异常

实际上你的错误在这里:

代码语言:javascript
运行
复制
 err="error"+e.getMessage();
                Log.e(e.getClass().getName(), e.getMessage());

e.getMessage() ==为null,则会得到NullPointerException

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26847218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档