【问题标题】:SAX parser openStream() errorSAX 解析器 openStream() 错误
【发布时间】:2012-11-30 11:56:15
【问题描述】:

你能告诉我为什么 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):致命异常:主要 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):由: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 更多

【问题讨论】:

  • 您发布的代码行与 SAX 无关。将错误堆栈跟踪添加到您的问题中。
  • 确保设备已连接到互联网...
  • 谢谢大家,我正在从 Android 安装源代码以捕获错误,因为如果我尝试查看异常,Eclipse 会给我“源代码不可用”错误。完成后我会再次与您联系

标签: java android saxparser


【解决方案1】:

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

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

【讨论】:

  • 谢谢大家,我正在从 Android 安装源代码以捕获错误,因为如果我尝试查看异常,Eclipse 会给我“源代码不可用”错误。完成后我会再次与您联系。
  • 好的;我找到了解决方案。看看这个:oreilly.com/catalog/errataunconfirmed.csp?isbn=0636920012825
【解决方案2】:

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

你可以看看这里:

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

【讨论】:

    猜你喜欢
    • 2015-02-15
    • 1970-01-01
    • 2013-02-08
    • 1970-01-01
    • 2013-01-02
    • 1970-01-01
    • 2011-09-23
    • 2012-03-01
    • 2013-12-05
    相关资源
    最近更新 更多