在网上看到,本身之前也曾经遇到:html
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规范,意思是主线程里网络操做异常。java
通常耗时操做都不容许放在主线程里直接操做,如网络操做等,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);