4

ここで、ボタンをクリックする必要があり、そのボタンをクリックして Facebook アラートでログインを有効にします。

今まで、私は古いコードを使用していましたが、それは機能しますが、非推奨になっているため、理解できない新しいコードを使用する必要があります。APP_ID 文字列はどこで使用されますか? HelloFacebookSample と SessionLoginSample を取得しましたが、携帯電話で実行しようとすると、どちらもクラッシュします。それから私はこのコードを試しました: https://developers.facebook.com/docs/howtos/androidsdk/3.0/login-with-facebook/ しかし、それは同じことをします。

これはlogcatが言うことです:

 03-13 14:55:46.497: E/AndroidRuntime(28849): java.lang.RuntimeException: Unable to start activity ComponentInfo{ro.koolnet.android/ro.koolnet.android.ui.activities.LoginActivity}: java.lang.NullPointerException: Argument applicationId cannot be null
 03-13 14:55:46.497: E/AndroidRuntime(28849):   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2190)
 03-13 14:55:46.497: E/AndroidRuntime(28849):   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2215)
 03-13 14:55:46.497: E/AndroidRuntime(28849):   at android.app.ActivityThread.access$600(ActivityThread.java:145)
 03-13 14:55:46.497: E/AndroidRuntime(28849):   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1211)
 03-13 14:55:46.497: E/AndroidRuntime(28849):   at android.os.Handler.dispatchMessage(Handler.java:99)
 03-13 14:55:46.497: E/AndroidRuntime(28849):   at android.os.Looper.loop(Looper.java:137)
 03-13 14:55:46.497: E/AndroidRuntime(28849):   at android.app.ActivityThread.main(ActivityThread.java:4978)
 03-13 14:55:46.497: E/AndroidRuntime(28849):   at java.lang.reflect.Method.invokeNative(Native Method)
 03-13 14:55:46.497: E/AndroidRuntime(28849):   at java.lang.reflect.Method.invoke(Method.java:511)
 03-13 14:55:46.497: E/AndroidRuntime(28849):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
 03-13 14:55:46.497: E/AndroidRuntime(28849):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:558)
 03-13 14:55:46.497: E/AndroidRuntime(28849):   at dalvik.system.NativeStart.main(Native Method)
 03-13 14:55:46.497: E/AndroidRuntime(28849): Caused by: java.lang.NullPointerException: Argument applicationId cannot be null
 03-13 14:55:46.497: E/AndroidRuntime(28849):   at com.facebook.internal.Validate.notNull(Validate.java:29)
 03-13 14:55:46.497: E/AndroidRuntime(28849):   at com.facebook.Session.<init>(Session.java:224)
 03-13 14:55:46.497: E/AndroidRuntime(28849):   at com.facebook.Session.<init>(Session.java:209)
 03-13 14:55:46.497: E/AndroidRuntime(28849):   at com.facebook.UiLifecycleHelper.onCreate(UiLifecycleHelper.java:73)

誰かが実際のチュートリアル/例を手伝ってくれませんか?

今、私はこのコードも試しました: https://github.com/fbsamples/android-3.0-howtos/blob/master/LoginHowTo/src/com/facebook/samples/loginhowto/MainFragment.java

しかし、それでも同じエラーが発生します。今、logcat を調べたところ、application_id が (sdk コードで) null であるため、クラッシュします。UIhelper を使用してインスタンス化します。しかし、uihelper (UiLifecycleHelper) を作成するときに、APP_ID を渡すオプションがありません。なぜですか? どこかにapplication_idを渡す可能性はありますか?

4

1 に答える 1

14

次のように、マニフェストにアプリケーション ID を含める必要があります。

<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/app_id"/>

私はこのコードを持っています: https://github.com/fbsamples/android-3.0-howtos/tree/master/LoginHowToしかし 、唯一の違いは、アクティビティが必要であり、フラグメントが ないことです。ログインした後、ダイアログで my .authButton.setFragment(this);authButton.setSessionStatusCallback(callback);onSessionStateChange

于 2013-03-13T14:05:41.693 に答える