我的应用程序的构建目标是Google API 2.2并且它在eclipse模拟器上运行完美但是当我从设备运行它时(三星gt s5830与android 2.3.5)我得到'强制关闭'当应用程序制作http请求(apache-mysql-php),返回的json数组为null。 E / Buffer Error(1677):转换结果java.lang.NullPointerException时出错 E / JSON Parser(1677):解析数据时出错org.json.JSONException:字符0处的输入结束 E / AndroidRuntime(1677):致命异常:主
如果您有任何想法,请帮助..(与任何设备设置有关系吗?我有“Usb调试”,“gps”,“数据同步”,“互联网连接”)
答案 0 :(得分:0)
您是否在清单中为Android.Hardware.Wifi设置了uses-feature?
答案 1 :(得分:0)
它强制关闭,因为你只是假设你回来的json是好的而事实并非如此。这就是为什么它会给你一个解析器异常。您需要添加更好的错误处理,因为您不能指望移动设备与网络建立一致的连接。
那就是说我们需要更多的信息来帮助你找出你的json无效的原因。您想从哪个网址提取数据?
答案 2 :(得分:0)
除了导致php输出的null响应的任何其他因果问题之外,在将其推送到JSONParser之前,您无法可靠地测试输出。
确保在尝试传递之前验证您的返回数据。
这可以很简单:
if(myJsonData!=null)
{
//parse the json
}
else
{
//do something useful here
}
您应该在下载代码中捕获任何可以提供更多信息的例外。
您可以使用try / catch块执行此操作。
还要了解如何将logcat与您的设备一起使用来调试代码并找出原因。任何其他方法都是猜测。