0

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

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

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

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

URL 是最新且有效的,因此不是由于它。

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

这是来自 Eclipse 的错误日志:

11-30 20:27:24.892: E/AndroidRuntime(2388): 致命异常: main 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): 在 java.lang.reflect.Method.invokeNative(Native Method) 11-30 20:27:24.892: E/AndroidRuntime(2388): 在 java.lang.reflect.Method.invoke(Method.java:511) 11-30 20:27:24.892: E/AndroidRuntime(2388): 在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 11-30 20:27:24.892: E/AndroidRuntime(2388): 在 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): Caused作者:java.lang。NullPointerException 11-30 20:27:24.892: E/AndroidRuntime(2388): 在 com.headfirstlabs.nasadailyimage.IotdHandler.processFeed(IotdHandler.java:58) 11-30 20:27:24.892: E/AndroidRuntime(2388):在 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 更多E/AndroidRuntime(2388): 在 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 更多E/AndroidRuntime(2388): 在 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 更多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 更多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 更多

4

2 回答 2

0

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

(我的猜测可能是您对该站点的访问被防火墙阻止了,或者您实际上是在尝试连接到不同的 URL。也有可能您以某种方式得到了错误的代码行......)

于 2012-11-30T12:36:25.127 回答
0

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

你可以看看这里:

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

于 2012-12-01T00:26:23.867 回答