2012年2月4日 星期六

【Android】android.os.NetworkOnMainThreadException

今天在寫Android 程式模擬檔案上傳到遠端的時候遇到的問題

以下是程式片段:

HttpURLConnection conn = (HttpURLConnection)connectURL.openConnection();
//...
OutputStream os = conn.getOutputStream();  //拋出例外

在Android的應用程式中,如果要訪問遠端的資源,必須在/AndroidManifest.xml

加入以下這行標籤:

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

如果已經加上去之後還是有例外,可以嘗試在 Activity 中的 onCreate(Bundle) 中

加入以下的片段程式:


StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()    
             .detectDiskReads()    
             .detectDiskWrites()    
             .detectNetwork() 
             .penaltyLog()    
             .build());    
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()    
             .detectLeakedSqlLiteObjects()    
             .detectLeakedClosableObjects()    
             .penaltyLog()    
             .penaltyDeath()    
             .build());


或許可以幫助你解決問題

沒有留言:

張貼留言