2013-03-13 127 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