Android-Android调用服务器JSON数据出错
从网上下载的android程序demo可以调用json数据
但是当自己创意一个android程序时就会报错
希望能够得到您的帮助
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
从网上下载的android程序demo可以调用json数据
但是当自己创意一个android程序时就会报错
希望能够得到您的帮助
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(5)
可以使用Google gson实现Java对象和JSON数据之间映射嘛,效率应该比自己解析要好吧。。
https://code.google.com/p/google-gson/
在android4.0后的版本中,请求网络的时候用到StrictMode中AndroidBlockGuardPolicy的检查策略,如果在UI线程连接网络就会报这个异常,你可以尝试了一下把AndroidMainfest中的android:targetSdkVersion=”15″更换成更低的版本,这样就不会报错了。但是还是建议你把请求网络这些耗时的操作放到非UI线程中进行操作,建议你去看看AsyncTask这个类,我现在在开发中都是继承AsyncTask类实现它的doInBackground方法就行了。
最后贴出官方对这个NetworkOnMainThreadException的说明
The exception that is thrown when an application attempts to perform a networking operation on its main thread.
This is only thrown for applications targeting the Honeycomb SDK or higher. Applications targeting earlier SDK versions are allowed to do networking on their main event loop threads, but it's heavily discouraged. See the document Designing for Responsiveness.
Also see StrictMode.
异常是NetworkOnMainThreadException,访问网络阻塞主线程
把你getJSONFromUrl放到一个线程里操作
和JSON解析没有多大的关系,问题是如网络一类的请求在主线程中直接请求会导致ANR的。可以使用AsyncTask,或者new Thread。
单起一个任务来跑,你这样会阻塞主线程的。