其他分享
首页 > 其他分享> > Android 中报错 W/System.err: android.os.NetworkOnMainThreadException

Android 中报错 W/System.err: android.os.NetworkOnMainThreadException

作者:互联网

Android 中报错 W/System.err: android.os.NetworkOnMainThreadException

1. 原因

主线程中进行网络请求异常, Android4.0 版本开始后就强制程序不能在主线程中访问网络, 要把访问网络放在独立的子线程中.

2. 解决

在 AndroidManifest.xml 文件中开启访问权限

<uses-permission android:name="android.permission.INTERNET"/>

2.1 方法一 (访问少)

在 Activity 的 onCreate() 方法中添加, 忽略这些强制策略.

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

2.1 方法二 (推荐)

创建新的线程, 启动一条子线程进行你的网络请求.

// Android 4.0 之后不能在主线程中请求 HTTP 请求
new Thread(() -> {
	// do something... The code of the request URL
}).start();

标签:err,StrictMode,System,程中,访问,报错,线程,Android,2.1
来源: https://blog.csdn.net/YKenan/article/details/114455983