在網上看到,本身之前也曾經遇到: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);