我关注了这个RSS阅读器Tutorial。
所以起初我在这行中出错:
Uri uri = Uri.parse(links.get(position));
我收到了错误,我必须将它转换为这样的字符串:
Uri uri = Uri.parse((String) links.get(position));
之后可以运行App。 但是,如果我想打开一个ListView元素,应用程序每次都会停止.... 有谁知道什么是错的?
这里是logcat:
11-20 19:25:19.027: E/AndroidRuntime(505): FATAL EXCEPTION: main
11-20 19:25:19.027: E/AndroidRuntime(505): java.lang.IndexOutOfBoundsException: Invalid index 2, size is 0
11-20 19:25:19.027: E/AndroidRuntime(505): at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:257)
11-20 19:25:19.027: E/AndroidRuntime(505): at java.util.ArrayList.get(ArrayList.java:311)
11-20 19:25:19.027: E/AndroidRuntime(505): at com.rss_reader.MainActivity.onListItemClick(MainActivity.java:111)
11-20 19:25:19.027: E/AndroidRuntime(505): at android.app.ListActivity$2.onItemClick(ListActivity.java:319)
11-20 19:25:19.027: E/AndroidRuntime(505): at android.widget.AdapterView.performItemClick(AdapterView.java:284)
11-20 19:25:19.027: E/AndroidRuntime(505): at android.widget.ListView.performItemClick(ListView.java:3513)
11-20 19:25:19.027: E/AndroidRuntime(505): at android.widget.AbsListView$PerformClick.run(AbsListView.java:1812)
11-20 19:25:19.027: E/AndroidRuntime(505): at android.os.Handler.handleCallback(Handler.java:587)
11-20 19:25:19.027: E/AndroidRuntime(505): at android.os.Handler.dispatchMessage(Handler.java:92)
11-20 19:25:19.027: E/AndroidRuntime(505): at android.os.Looper.loop(Looper.java:123)
11-20 19:25:19.027: E/AndroidRuntime(505): at android.app.ActivityThread.main(ActivityThread.java:3683)
11-20 19:25:19.027: E/AndroidRuntime(505): at java.lang.reflect.Method.invokeNative(Native Method)
11-20 19:25:19.027: E/AndroidRuntime(505): at java.lang.reflect.Method.invoke(Method.java:507)
11-20 19:25:19.027: E/AndroidRuntime(505): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
11-20 19:25:19.027: E/AndroidRuntime(505): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
11-20 19:25:19.027: E/AndroidRuntime(505): at dalvik.system.NativeStart.main(Native Method)
在我阅读了描述后,我认为Uri可能是null,因为:
抛出 如果uriString为null,则为NullPointerException
但为什么它为null?我不知道......
编辑:教程的链接是错误的...但现在我找到了正确的。
答案 0 :(得分:1)
LogCat中的重要信息是:
java.lang.IndexOutOfBoundsException: Invalid index 2, size is 0
表示您的links
列表为空,然后是:
at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:257)
at java.util.ArrayList.get(ArrayList.java:311)
at com.rss_reader.MainActivity.onListItemClick(MainActivity.java:111)
您可以看到,您尝试在第111行的links
方法中读取onListItemClick()
(不存在)中的值,如上所述:
Uri uri = Uri.parse((String) links.get(position));
你必须在某个时刻用links
将数据添加到links.add()
列表中......
答案 1 :(得分:0)
你的罪魁祸首在这里:
com.rss_reader.MainActivity.onListItemClick(MainActivity.java:111)
MainActivity.java的第111行
编辑
然后它意味着您到达数据之外,或更确切地说
java.lang.IndexOutOfBoundsException: Invalid index 2, size is 0
当您尝试获取第3个元素时,links
为空,因此IndexOutOfBounds异常。检查为什么links
未正确初始化或执行其他检查以确保您的position
设置为适合环境。