我正在尝试在我的应用中实施Facebook共享对话框,该对话框将在Facebook上共享我自己的应用。我下载了facebook SDK并将其导入Android Studio。这就是我试图这样做的方式。
首先我跟着these steps:
uiHelper = new UiLifecycleHelper(this, null);
uiHelper.onCreate(savedInstanceState);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
uiHelper.onActivityResult(requestCode, resultCode, data, new FacebookDialog.Callback() {
@Override
public void onComplete(FacebookDialog.PendingCall pendingCall, Bundle data) {
Log.i("Activity", "Success!");
}
@Override
public void onError(FacebookDialog.PendingCall pendingCall, Exception error, Bundle data) {
Log.e("Activity", String.format("Error: %s", error.toString()));
}
});
}
然后我还实现了onResume,onDestroy等。
当我点击按钮在Facebook上分享时会发生这种情况:
FacebookDialog shareDialog = new FacebookDialog.ShareDialogBuilder(this)
.setLink("https://play.google.com/store/apps/details?id="+getPackageName())
.build();
uiHelper.trackPendingDialogCall(shareDialog.present());
然而,当我运行应用程序时,它立即崩溃,这是logcat输出。
Caused by: java.lang.NullPointerException: Argument 'applicationId' cannot be null
at com.facebook.internal.Validate.notNull(Validate.java:29)
at com.facebook.Session.<init>(Session.java:281)
at com.facebook.Session.<init>(Session.java:266)
at com.facebook.UiLifecycleHelper.onCreate(UiLifecycleHelper.java:92)
at com.mhacinapps.sleepwithnaturesounds.MainActivity.onCreate(MainActivity.java:47)
这是MainActivity.java:47
uiHelper = new UiLifecycleHelper(this, null);
然后我将应用程序注册到facebook,因此我获得了应用程序ID,并尝试将“null”替换为应用程序ID。但是当我这样做时,它会说“整数太大”。
如果有人可以帮助我,我会非常感激。我想要实现的只是一个简单的共享按钮,以便用户可以立即通过Facebook共享应用程序链接。
我是否需要登录facebook?
答案 0 :(得分:0)
检查您的清单,并在此处引用此链接 - Android facebook applicationId cannot be null。 此外,我认为它的清单,所以我也在这里给出清单文件的代码。
<application
android:icon="@drawable/icon"
android:label="@string/app_name">
<activity
android:name=".ContactSelection"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.facebook.LoginActivity"
android:label="@string/app_name" />
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/app_id" />
</application>