Android 从url获取JSON错误
我正在尝试从使用中获取JSON 我使用的getJSONFromUrl如下: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
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任务。但是,如果您有少量数据需要解析,则可以。很乐意帮助:)。。当我们开始时,我们大多数人都遇到了这种情况:)这个答案似乎与这个问题不匹配。你能解释一下为什么这个答案能解决这个问题吗,如果他们匹配的话?