使用Volley库解析JSON时Logcat无报错但屏幕无输出,请问问题出在哪里?
问题排查方向
- URL存在格式错误:你定义的url字符串中间插入了换行和多余空白字符,会导致请求地址非法,请求直接无法正常发送。请将url的内容拼接为连续无多余空格的完整字符串。
- 错误回调无日志输出:你重写的
onErrorResponse方法内没有任何日志打印逻辑,就算请求阶段出现报错你也无法在Logcat中观测到,建议在该方法内添加Log.e("Volley请求错误", error.toString());即可捕获请求相关的报错信息。 - 空值未做判断:调用
response.optJSONArray("features")后你直接调用了length()方法,如果返回的features为null会触发空指针异常,建议调用前先判断features是否非空再执行遍历逻辑。 - time字段取值类型错误:接口返回的time字段是13位毫秒级时间戳,数值远超过int类型的取值范围,你使用
optInt取值会出现溢出,拿到错误的时间值,应该改为optLong("time")取值。 - 数据更新后未通知UI刷新:Volley的网络请求是异步执行的,你把解析完成的数据添加到
earthquakes列表后,没有调用对应列表Adapter的notifyDataSetChanged()方法,UI不会自动感知数据变更更新内容,自然看不到预期展示的信息。 - 检查网络权限配置:确认你的AndroidManifest.xml中已经添加了网络权限声明
<uses-permission android:name="android.permission.INTERNET" />,无网络权限的情况下请求会直接失败。
内容的提问来源于stack exchange,提问作者samarth
相关产品推荐
相关产品推荐

