当我在我的Android服务器设备上运行该代码时出现异常,但我不明白为什么,请你帮助我。
WifiP2pDevice peer = wifiP2pDeviceList.getDeviceList().iterator().next();
String host = peer.deviceAddress;
ServerSocket serverSocket = new ServerSocket(2009);
Socket client = serverSocket.accept(); // I got the exception here
例外: 致命异议:主要 android.os.NetworkOnMainThreadException
答案 0 :(得分:0)
Android将网络调用识别为可能无响应,因此会阻止您在UI线程上执行此操作。您需要在AsyncTask
或后台流程中拨打电话。见:
http://www.vogella.com/tutorials/AndroidBackgroundProcessing/article.html
错误的其他(流行)解释:
答案 1 :(得分:0)
那是因为在UI线程中不允许网络相关的东西但是有一个解决方法,只需在你的onCreate中添加这些行,在setContentView下面(以避免任何错误:))
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
但如果你在非UI线程上这样做,这将是一个很好的做法。