通过Facebook和applicationId'分享链接不能为空

时间:2014-08-15 11:24:16

标签: android facebook facebook-android-sdk

我正在尝试在我的应用中实施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?

1 个答案:

答案 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>