今天在调试一个使用HttpClient向服务器post数据,并获取服务器返回的数据时,居然报错了!之前明明已经可以运行了,怎么会报错呢,翻遍了百度的答案,发觉没有一个是匹配我的问题的,在热心的群友提示下,使用debug进行断点测试。
进入正题:
当出现 java.lang.NullPointerException时,应从Logcat中查找出错的位置,例如显示的是:
error:…………………………(xxxx.java:66)
error:…………………………………………(xxxxxxxxx.java:23)
error:…………………………(xxxx.java:12)
.
.
.(随便写下,意会就好)
这时便可以在该文件的行前打上断点,进行调试,在调试的过程中注意是值的变化,空指针大多是需要引用的值变成null了。
我出错的原因是HttpClient请求返回为空,也就是请求获取的数据没获取到或是丢失了,造成程序后续运行时,传递的值为空。
那么数据为何会空呢
一般情况下考虑:
- 服务器返回异常
- 网络讯号太差!
- (其他的不大情况,欢迎补充)
我遇到的就是第二种情况,所以以后记得在数据会与网络交互时,一定要保持在网络状态良好的情况下进行测试、开发。