Google Android WebAPIプログラミング入門を読んでいて †第9章 「もう少し実用的なクライアントを目指す」のアプリが動かねー †「Google Android WebAPIプログラミング入門」(横山隆司著)の第9章の「9-4 もう少し実用的なクライアントを目指す」で、本の通りにコーディングしても、Facebookクライアントがニュースフィードを取得できません。下記の問題点があります。多分、本執筆後、APIに変更があって、アプリが正常動作しなくなったのでしょう。順を追って解決していきます。 1. logcatにorg.json.JSONException: No value for dataが出る †FacebookHomeFactory.javaの
で、org.json.JSONException: No value for dataになっています。このコードの前辺りに、
を書いて、実行すると、logcatに
と出力されます。ググると、http://facebook-docs.oklahome.net/archives/51892628.htmlとかが引っかかり、MainActivity.javaの
を
と書き換え、アプリユーザに追加のパーミッションread_streamを求めるように設定するといい。 2. logcatにまたまた org.json.JSONException: No value for data が出る。 †エラーが出ている行番号を見ると、FacebookHomeFactory.javaのif(data.has("comments"))ブロック内の
でエラーが発生していることが分かります。この文の前辺りに、
を書いて実行すると、
が出力されます。コメントがなく、"data"のJSONArrayが取れないということです。これは、
の文を前に書いて、
の行から、
の行まで行を、if (count != 0) ブロックの中に入れれば解決します。 3. logcatに org.json.JSONException: No value for message が出る。 †logcatの出力を見ると、
の行でエラーが出ています。ニュースフィードにメッセージがないとき、エラーがでるようなので、
と書き換えると、問題は解消されます。 4. Androidキーハッシュを開発者ページで登録する必要がある? †これは、アプリが動かないとき、真っ先にやったことで、必須か分かりません。http://ayakix-lablog.blogspot.com/2011/08/facebookandroid.htmlなどを見てキーハッシュを作成し、開発ページに登録しましょう。 |