为什么我在 wifi 直接插座连接期间出现异常



当我在我的安卓服务器设备上运行该代码时,我遇到了异常,但我不明白为什么,你能帮帮我吗?

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

Android 会将

网络调用识别为可能无响应,因此它会阻止您在界面线程上执行此操作。您需要在AsyncTask或后台进程中进行调用。看到这个:

http://www.vogella.com/tutorials/AndroidBackgroundProcessing/article.html

以及对错误的附加(流行(解释:

如何修复android.os.NetworkOnMainThreadException?

这是因为UI线程中不允许与网络相关的东西,但有一个解决方法,只需在setContentView下方的onCreate中添加这些行(以避免任何错误:)(

StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);

但是,如果您在非 UI 线程上执行此操作,这将是一个很好的做法。

最新更新