在网上看到,自己以前也曾经遇到:
1 04-26 14:36:14.663: E/AndroidRuntime(10368): android.os.NetworkOnMainThreadException 2 04-26 14:36:14.663: E/AndroidRuntime(10368): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117) 3 但是我在manifest里配置了<uses-permission android:name="android.permission.INTERNET"/>
造成这样的错误原因是代码不符合Android规范,意思是主线程里网络操作异常。
一般耗时操作都不允许放在主线程里直接操作,如网络操作等,
一般需要开一个子线程去访问网络,然后通过handler去更新界面。
当然,硬是要这样测试操作也是可以的,参考增加以下代码:
1 @Override 2 protected void onCreate(Bundle savedInstanceState) { 3 StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() 4 .detectDiskReads() 5 .detectDiskWrites() 6 .detectNetwork() // or .detectAll() for all detectable problems 7 .penaltyLog() 8 .build()); 9 StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder() 10 .detectLeakedSqlLiteObjects() //探测SQLite数据库操作 11 .penaltyLog() //打印logcat 12 .penaltyDeath() 13 .build()); 14 super.onCreate(savedInstanceState); 15 setContentView(R.layout.activity_main);
参考原文:http://www.apkbus.com/android-114524-1-1.html
时间: 2024-11-07 19:36:59