2013-08-29 183 views
0

我試圖從this url使用this class獲得JSON。從url error獲取JSON

我使用getJSONFromUrl這樣的:

JSONParser jParser = new JSONParser();//Instantiate class 
JSONObject json = jParser.getJSONFromUrl("http://tcc-teste.aws.af.cm/api/get/aluno/1");//using getJSNOFromUrl method 

而且我在歌廳此logcat中錯誤:

08-28 22:46:06.560: E/AndroidRuntime(905): FATAL EXCEPTION: main 
08-28 22:46:06.560: E/AndroidRuntime(905): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.br.edu.unifoa/com.example.br.edu.unifoa.MainActivity}: android.os.NetworkOnMainThreadException 
08-28 22:46:06.560: E/AndroidRuntime(905): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211) 
08-28 22:46:06.560: E/AndroidRuntime(905): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261) 
08-28 22:46:06.560: E/AndroidRuntime(905): at android.app.ActivityThread.access$600(ActivityThread.java:141) 
08-28 22:46:06.560: E/AndroidRuntime(905): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256) 
08-28 22:46:06.560: E/AndroidRuntime(905): at android.os.Handler.dispatchMessage(Handler.java:99) 
08-28 22:46:06.560: E/AndroidRuntime(905): at android.os.Looper.loop(Looper.java:137) 
08-28 22:46:06.560: E/AndroidRuntime(905): at android.app.ActivityThread.main(ActivityThread.java:5103) 
+0

只需讀取錯誤,它說,在主線程沒有網絡!?!?!?!,使用AsynchTask還是其他什麼東西...... –

回答

0

您正在嘗試在UI線程解析(主線程)whihc是導致這個錯誤。運行一個asynctask並做到這一點。它不會崩潰。任何網絡或長時間運行的工作都不應該在UI線程上完成,因爲它會阻止它。

+0

感謝兄弟,這看起來簡單,但我對Android開發新的。 –

+0

高興地幫助:) ..它發生在我們大多數時候,當我們開始:) – Sushil

1

使用此您解析

public static int SDK_INT = android.os.Build.VERSION.SDK_INT; 

if (SDK_INT >= 10) { 
        ThreadPolicy tp = ThreadPolicy.LAX; 
        StrictMode.setThreadPolicy(tp); 
       } 

清單文件添加此權限之前

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

也可以使用異步任務also.but如果你有少量的數據解析它是好的。 –

0

謝謝兄弟,但改變這樣 公共靜態INT SDK_INT = android.os.Build.VERSION。 SDK_INT;

{ 
    if (SDK_INT >= 10) { 
     StrictMode.ThreadPolicy tp = StrictMode.ThreadPolicy.LAX; 
     StrictMode.setThreadPolicy(tp); 
    } 
} 
+0

這個答案似乎不符合查詢。你能解釋爲什麼這個答案解決了這個問題,如果他們匹配? –