2013-03-13 168 views
4

現在,我需要點擊一個按鈕,然後使用該按鈕激活與facebook警報的登錄。使用Facebook SDK 3.0使用Facebook進行登錄使用Facebook SDK 3.0

現在,到現在爲止,我已經使用舊的代碼,工作,但已被棄用,所以我需要使用新的,我不明白。它在哪裏使用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代碼中)而崩潰。現在他們通過使用UIhelper實例化它。但是當我創建uihelper(UiLifecycleHelper)時,我沒有選項來傳遞APP_ID,爲什麼?我應該有可能通過application_id someWherE?

回答

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 但唯一不同的是,我需要有一個活動,沒有任何片段,所以我更改 authButton.setFragment(this);authButton.setSessionStatusCallback(callback); 現在唯一的問題是,我登錄後,與對話框,它不會輸入我的onSessionStateChange

+2

按照這個教程,希望你會得到你所有的答案:)它完全幫助我。 https://developers.facebook.com/docs/tutorials/androidsdk/3.0/scrumptious/ – Shoshi 2013-03-13 14:42:50

+1

2013-07-04 11:51:21