这是以下页面中的代码: https://developers.facebook.com/docs/android/share-dialog/#setup
我试图让它工作,但在实例化UILifecycleHelper类时,它与“回调”参数非常混淆。 (查看教程代码)我没看到这个变量的来源。我试图创建一个空对象并传递它,但(惊讶)得到一个NullPointerException。
Facebook是否忘记了这一步,或者是否存在一些我缺乏理解的讽刺知识Callbacks又回来困扰我了?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
uiHelper = new UiLifecycleHelper(this, callback); // line 45 in code
uiHelper.onCreate(savedInstanceState);
}
感谢您的帮助
//编辑(再次) - 错误的跟踪
这是堆栈跟踪 - 还有很多ECLIPSE错误需要解决(不知道如何摆脱它们),所以请忽略它们:
09-16 19:24:20.533: E/AndroidRuntime(1348): FATAL EXCEPTION: main
09-16 19:24:20.533: E/AndroidRuntime(1348): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.theperspectableone.carddisplayertemplate/com.theperspectableone.carddisplayertemplate.MainActivity}: java.lang.NullPointerException: Argument 'applicationId' cannot be null
09-16 19:24:20.533: E/AndroidRuntime(1348): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
09-16 19:24:20.533: E/AndroidRuntime(1348): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
09-16 19:24:20.533: E/AndroidRuntime(1348): at android.app.ActivityThread.access$600(ActivityThread.java:141)
09-16 19:24:20.533: E/AndroidRuntime(1348): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
09-16 19:24:20.533: E/AndroidRuntime(1348): at android.os.Handler.dispatchMessage(Handler.java:99)
09-16 19:24:20.533: E/AndroidRuntime(1348): at android.os.Looper.loop(Looper.java:137)
09-16 19:24:20.533: E/AndroidRuntime(1348): at android.app.ActivityThread.main(ActivityThread.java:5103)
09-16 19:24:20.533: E/AndroidRuntime(1348): at java.lang.reflect.Method.invokeNative(Native Method)
09-16 19:24:20.533: E/AndroidRuntime(1348): at java.lang.reflect.Method.invoke(Method.java:525)
09-16 19:24:20.533: E/AndroidRuntime(1348): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
09-16 19:24:20.533: E/AndroidRuntime(1348): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
09-16 19:24:20.533: E/AndroidRuntime(1348): at dalvik.system.NativeStart.main(Native Method)
09-16 19:24:20.533: E/AndroidRuntime(1348): Caused by: java.lang.NullPointerException: Argument 'applicationId' cannot be null
09-16 19:24:20.533: E/AndroidRuntime(1348): at com.facebook.internal.Validate.notNull(Validate.java:29)
09-16 19:24:20.533: E/AndroidRuntime(1348): at com.facebook.Session.<init>(Session.java:227)
09-16 19:24:20.533: E/AndroidRuntime(1348): at com.facebook.Session.<init>(Session.java:212)
09-16 19:24:20.533: E/AndroidRuntime(1348): at com.facebook.UiLifecycleHelper.onCreate(UiLifecycleHelper.java:87)
09-16 19:24:20.533: E/AndroidRuntime(1348): at com.theperspectableone.carddisplayertemplate.MainActivity.onCreate(MainActivity.java:45)
09-16 19:24:20.533: E/AndroidRuntime(1348): at android.app.Activity.performCreate(Activity.java:5133)
09-16 19:24:20.533: E/AndroidRuntime(1348): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
09-16 19:24:20.533: E/AndroidRuntime(1348): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
09-16 19:24:20.533: E/AndroidRuntime(1348): ... 11 more
答案 0 :(得分:1)
答案是Idipaolo所说的......你必须遵循设置说明以及分享对话框。
您最终需要使用Facebook创建开发者帐户,其中还包含以下内容:
Having "keytool" in your computer ENVIRONMENT VARIABLES
Installing and having "openssl" in your computer ENVIRONMENT VARIABLES
Creating a keystore
Creating a Key
Creating a new App on the Facebook Developer page
Putting the Key in the app info page
Getting an App ID from Facebook
A plethora of other setup things in your Android file
这个网站帮助我获取密钥(虽然不推荐使用实际的FB代码):http://www.androidhive.info/2012/03/android-facebook-connect-tutorial/
这使对话框启动并运行(尽管有一行被弃用并且仍然让我感到悲伤*):https://developers.facebook.com/docs/android/share-dialog/#setup
*Request.executeMeRequestAsync(session, new Request.GraphUserCallback() {