我想创建一个Android的RSS阅读器来显示来自网站的新闻(特别是财经新闻),所以正在查看有关如何解决这个问题的各种教程。
我找到了一个很好的教程,该项目托管在GitHub @ https://github.com/nerdability/AndroidRssReader
上我将项目导入Android Studio,更正了依赖项。跑完程序,只是为了在应用程序上获得一个空白屏幕。
ArticleListFragment.java 中指定的网址为 -
private static final String BLOG_URL = "http://blog.nerdability.com/feeds/posts/default";
然后我发现这个网站已关闭,因此是空白页面。我用不同的Feed替换了链接,比如说 -
private static final String BLOG_URL = "http://automateddeveloper.blogspot.com/2010/08/android-and-rss.html#comments";
并运行程序
应用程序在启动时崩溃了。检查了logcat -
java.lang.NullPointerException: Attempt to invoke interface method 'java.util.Iterator java.util.List.iterator()' on a null object reference
at com.nerdability.android.rss.RssService$1.run(RssService.java:52)
at android.app.Activity.runOnUiThread(Activity.java:5293)
at com.nerdability.android.rss.RssService.onPostExecute(RssService.java:49)
at com.nerdability.android.rss.RssService.onPostExecute(RssService.java:27)
at android.os.AsyncTask.finish(AsyncTask.java:636)
at android.os.AsyncTask.access$500(AsyncTask.java:177)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:653)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5257)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
该项目也使用AsyncTask进行网络调用 - 可以在 RssService.java 中看到 任何线索为什么会发生这种情况?有关代码参考,请参阅GitHub链接。