SAX解析器openStream()错误

时间:2012-11-30 11:56:16

标签: java android saxparser

你能告诉我为什么 SAX 解析器会在这一行中断:

InputStream inputStream = new URL(url).openStream(); 

之前我已经构建了这样的url:

private String url = "http://www.nasa.gov/rss/image_of_the_day.rss";

网址是最新的和功能性的,因此不是由它决定的。

我是SAX的新手所以请原谅我的无知。

以下是Eclipse的错误日志:

11-30 20:27:24.892:E / AndroidRuntime(2388):致命异常:主要 11-30 20:27:24.892:E / AndroidRuntime(2388):java.lang.RuntimeException:无法启动活动ComponentInfo {com.headfirstlabs.nasadailyimage / com.headfirstlabs.nasadailyimage.NasaDailyImage}:java.lang.NullPointerException 11-30 20:27:24.892:E / AndroidRuntime(2388):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1955) 11-30 20:27:24.892:E / AndroidRuntime(2388):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1980) 11-30 20:27:24.892:E / AndroidRuntime(2388):在android.app.ActivityThread.access $ 600(ActivityThread.java:122) 11-30 20:27:24.892:E / AndroidRuntime(2388):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1146) 11-30 20:27:24.892:E / AndroidRuntime(2388):在android.os.Handler.dispatchMessage(Handler.java:99) 11-30 20:27:24.892:E / AndroidRuntime(2388):在android.os.Looper.loop(Looper.java:137) 11-30 20:27:24.892:E / AndroidRuntime(2388):在android.app.ActivityThread.main(ActivityThread.java:4340) 11-30 20:27:24.892:E / AndroidRuntime(2388):at java.lang.reflect.Method.invokeNative(Native Method) 11-30 20:27:24.892:E / AndroidRuntime(2388):at java.lang.reflect.Method.invoke(Method.java:511) 11-30 20:27:24.892:E / AndroidRuntime(2388):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:784) 11-30 20:27:24.892:E / AndroidRuntime(2388):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 11-30 20:27:24.892:E / AndroidRuntime(2388):at dalvik.system.NativeStart.main(Native Method) 11-30 20:27:24.892:E / AndroidRuntime(2388):引起:java.lang.NullPointerException 11-30 20:27:24.892:E / AndroidRuntime(2388):at com.headfirstlabs.nasadailyimage.IotdHandler.processFeed(IotdHandler.java:58) 11-30 20:27:24.892:E / AndroidRuntime(2388):at com.headfirstlabs.nasadailyimage.NasaDailyImage.onCreate(NasaDailyImage.java:18) 11-30 20:27:24.892:E / AndroidRuntime(2388):在android.app.Activity.performCreate(Activity.java:4465) 11-30 20:27:24.892:E / AndroidRuntime(2388):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 11-30 20:27:24.892:E / AndroidRuntime(2388):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1919) 11-30 20:27:24.892:E / AndroidRuntime(2388):... 11更多

2 个答案:

答案 0 :(得分:0)

您需要捕获尝试打开流时抛出的异常,并打印(至少)异常消息。这应该足以解释为什么openStream()调用不起作用。

(我的猜测是,您对网站的访问权限被防火墙阻止,或者您实际尝试连接到其他网址。您也可能以某种方式获得了错误的代码行...)

答案 1 :(得分:0)

我发现有关于这本书的错误页面。 (非常大) 在页105上,它说parse方法缺少一个参数。

你可以看一下:

http://oreilly.com/catalog/errataunconfirmed.csp?isbn=0636920012825