1

この RSS リーダーチュートリアルに従いました。

したがって、最初は次の行でエラーが発生しました。

Uri uri = Uri.parse(links.get(position));

次のように文字列にキャストする必要があるというエラーが発生しました。

Uri uri = Uri.parse((String) links.get(position));

その後、アプリを実行することができました。しかし、ListView Element を開きたい場合、アプリは毎回停止します。

そしてここに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ですか?何も思いつきません...

編集:チュートリアルへのリンクが間違っています...しかし、今は正しいものを見つけました。

4

2 に答える 2

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));

ある時点でリストにデータを追加する必要があります...linkslinks.add()

于 2012-11-20T19:34:11.367 に答える
0

あなたの犯人はここにいます:

com.rss_reader.MainActivity.onListItemClick(MainActivity.java:111)

MainActivity.java の 111 行目

編集

より正確には、データの外に到達することを意味します

java.lang.IndexOutOfBoundsException: Invalid index 2, size is 0

links3番目の要素を取得しようとしている間は空であるため、IndexOutOfBounds例外が発生します。が正しく初期化されていない理由linksを確認するか、その他のチェックをposition行って、環境に合わせて正しく設定されていることを確認してください。

于 2012-11-20T19:32:39.563 に答える