android 4 0-连接网络异常java.net.SocketTimeoutException

问题描述

连接网络异常java.net.SocketTimeoutException
我用模拟器Android2.3.3版本跑,是可以连接网络获取到数据的,但用真机(Android4.0版本)运行就出现android.os.NetworkOnMainThreadException
at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1099)
at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84)
......
网上说在onCreate()方法里面加上
StrictMode.ThreadPolicy policy=new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
但我添加之后就出现上面的问题:java.net.SocketTimeoutException: failed to connect to /172.16.58.88 (port 8080) after 5000ms

希望高手能给予指导,谢

解决方案

Android4.0以后就不能再主线程中进行网络请求等费时性操作,要不然就会报anr异常,这主要也是从用户体验的角度考虑问题的,想象一下,如果你手机
网速比较慢时,这个时候请求了一个网络数据,在数据没有返回时,你的界面就不会有任何可供展示的数据,就一直卡在那里,影响用户体验。
new Thread(){
public void run(){
// 做网络请求操作
}
}.start();
就可以解决问题了。如果需要网络数据请求后做一些处理,就可以用到handler这个类去编写代码。

解决方案二:
android2.3以上版本是不允许在主线程中做网络操作,因为你的真机是Android4.0版本,所以会报异常:android.os.NetworkOnMainThreadException,请另起线程做网络操作

解决方案三:
socket 超时了,看看是不是网络不通造成的。

解决方案四:
在主线程里面,不能访问网络,那些设置不建议用,还是另一起一个线程访问网络吧

解决方案五:
看看你有没有添加访问网络的权限

解决方案六:
从字面可以知道是,在主线程中进行网络请求异常:
从Honeycomb SDK(3.0)开始,google不再允许网络请求(HTTP、Socket)等相关操作直接在Main Thread类中,其实本来就不应该这样做,直接在UI线程进行网络操作,会阻塞UI、用户体验差
在Honeycomb SDK(3.0)以下的版本,你还可以继续在Main Thread里这样做,在3.0以上,就不行了。网上有很多解决方法,例如thread或者asynctask都可以的

解决方案七:
这个应该有配置超时的地方吧,你把超时时间配置的长一点,另外就是在你调用的地方记录日志观察你这个远程调用耗时到底是多少。

解决方案八:
要访问网络进行操作,还是建议不要在主线程里面写,你可以在异步任务的doInBackground里面进行网络访问操作

解决方案九:
网络请求超时,是因为在主线程里向网络发送了请求。可以考虑新开线程处理网络请求,用thread + handler模式或者异步任务模式都可以做到。

解决方案十:
最简单的 new Thread,在run里面执行网络请求

时间: 2024-10-27 22:53:18

android 4 0-连接网络异常java.net.SocketTimeoutException的相关文章

android-连接网络异常java.net.SocketTimeoutException

问题描述 连接网络异常java.net.SocketTimeoutException 想在Android项目中访问连接dynamic web project下的servlet,url是这么写的:http://172.16.58.118:8080/videonews/servlet/SendToWebServlet,在ie上是可以访问的,模拟器上也可以,但在用真机测试,就出现下面问题: java.net.SocketTimeoutException: failed to connect to /1

关于Android 6.0 连接WiFi的问题

问题描述 关于Android 6.0 连接WiFi的问题 30C 从网络上弄了一段关于6.0网络变化的资料: 十一.Wi-Fi和网络变化(Wi-Fi and Networking Changes) 此版本在Wi-Fi和网络API执行行为上有如下的变化 (1)现在,你的app只能修改你自己创建的WifiConfiguration对象的状态,而不再允许修改或删除由用户或其它app创建的WifiConfiguration对象 (2)之前,应用可以使用enableNetwork(),设置disableA

java如何处理网络异常?

问题描述 java如何处理网络异常? 使用HttpClient发起连接,需要对连接中不同的异常进行处理,比如连接超时,拒绝连接什么的,但是怎么判断是哪种异常呢? 解决方案 java网络异常java网络异常类型java网络异常类型 解决方案二: 捕获异常,或者根据状态码进行处理,规定重试机制,如果遭遇异常就重新发起请求. 解决方案三: http://www.doc88.com/p-743686625288.html

httpurlconnection-在Android 4.0连接HttpURLConnection失败

问题描述 在Android 4.0连接HttpURLConnection失败 我使用以下代码从网络上获取changelog. InputStream content = null; try { URL url = new URL("http://dreamhawk.blinkenshell.org/changelog.txt"); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); ur

VMware安装android 使用蓝牙连接智能手环

vmware 创建的android虚拟机可以挂载主机自带的蓝牙设备去连接智能手环,即不需要单独购买蓝牙适配器.网上帖子实在太少,这里我就分享一下自己的心得,希望能帮助到需要的人.特别是windows phone的用户,或者android版本比较低的用户. 注意:如果是virtualbox 可能需要一个单独的蓝牙适配器 一 安装VMware虚拟机软件 这里大家自己百度就可以,并不是我们要将的重点 二 创建新的虚拟机 这里大家自己百度就可以,并不是我们要将的重点,注意以下的选项 网络选用NAT模式

【我的Android进阶之旅】Android 7.0报异常:java.lang.SecurityException: COLUMN_LOCAL_FILENAME is deprecated;

之前开发的一个和第三方合作的apk,在之前公司的 Android 5.1 系统的手表上运行正常,今天在公司新开发的 Android 7.1系统的手表上运行的时候,使用 DownloadManager 下载之后,查询下载状态的时候,报了异常 java.lang.SecurityException: COLUMN_LOCAL_FILENAME is deprecated; use ContentResolver.openFileDescriptor() instead 异常详细信息如下: 03-17

android httpclient处理网络异常

问题描述 android httpclient处理网络异常 如题,如何设置网络超时,或网络异常,并且提示用户异常,哪位大侠,给个详细代码,感激不进 解决方案 转载自: ? ? ? ? ? ??http://android.tgbus.com/Android/tutorial/201108/364645.shtml ? (Android开发实现HttpClient工具类) ? ? ? ? ??http://www.open-open.com/lib/view/open1329101420890.h

Android连接网络的时候对网络的状态进行判断

Android连接网络的时候,并不是每次都能连接到网络,因此在程序启动中需要对网络的状态进行判断,如果没有网络则提醒 用户进行设置. 首先,要判断网络状态,需要有相应的权限,下面为权限代码(AndroidManifest.xml): <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.p

我是学android 在studio中连接网络数据库

问题描述 我是学android 在studio中连接网络数据库 我刚入职三天,写注册功能,存新用户到数据库,公司PHP的哥们提供了一个网络数据库接口http://192.168.1.27/phpmyadmin/index.php,数据库名diancan, 表名members,账号和密码我也有,我怎么才能连接到这个数据库?求大神给出代码 感激不尽,不想失业 解决方案 这是phpadmin.不是数据库连接 昨天有个和你一样的人也要失业了,问了一样的问题,在姐姐的帮助下成功再就业. 解决方案二: 你不