Android 从url获取JSON错误

Android 从url获取JSON错误,android,json,Android,Json,我正在尝试从使用中获取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

我正在尝试从使用中获取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)

您正试图在导致此错误的UI线程(主线程)上进行分析。运行一个异步任务并执行它。那它就不会崩溃了。任何联网或长时间运行的工作都不应该在UI线程上完成,因为它会阻塞它。

在解析之前使用此选项

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" />

谢谢你,兄弟,但要像这样改变 public static int SDK_int=android.os.Build.VERSION.SDK_int

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

只需阅读错误,它表示主线程上没有网络!?!?!?!,使用AsynchTask或其他方法…您也可以使用async任务。但是,如果您有少量数据需要解析,则可以。很乐意帮助:)。。当我们开始时,我们大多数人都遇到了这种情况:)这个答案似乎与这个问题不匹配。你能解释一下为什么这个答案能解决这个问题吗,如果他们匹配的话?