Post 使用 FacebookDialog 在 Facebook 上拍摄照片

Post photo on Facebook using FacebookDialog

我在 getApplicationContext() 中收到空指针异常。这是我的代码。

 if (FacebookDialog.canPresentShareDialog
        (getApplicationContext(),
                FacebookDialog.ShareDialogFeature.PHOTOS)) {
    // Publish the post using the Photo Share Dialog
    RelativeLayout views = (RelativeLayout) findViewById(R.id.viewlayout);
    views.setDrawingCacheEnabled(true);
    views.buildDrawingCache();
    Bitmap img = views.getDrawingCache();
    ArrayList<Bitmap> list = new ArrayList<Bitmap>();
    list.add(img);
    FacebookDialog shareDialog = new FacebookDialog.PhotoShareDialogBuilder(this)
            .addPhotos(list)
            .build();
    uiHelper.trackPendingDialogCall(shareDialog.present());
} else {
    Toast.makeText(getApplicationContext(), "no", Toast.LENGTH_LONG).show();
}

}

我检查了是否安装了facebook。它回归真实。所以很明显 FacebookDialog.canPresentShareDialog 不是问题。已经尝试过这个,上下文和一切。

这是我的日志:

 java.lang.NullPointerException
                at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:883)
                at com.facebook.internal.Utility.getDialogFeatureConfig(Utility.java:717)
                at com.facebook.widget.FacebookDialog.getVersionSpecForFeature(FacebookDialog.java:498)
                at com.facebook.widget.FacebookDialog.getVersionSpecForFeatures(FacebookDialog.java:489)
                at com.facebook.widget.FacebookDialog.handleCanPresent(FacebookDialog.java:465)
                at com.facebook.widget.FacebookDialog.canPresentShareDialog(FacebookDialog.java:411)
                at com.racebuddy2.Results.postOnFacebook(Results.java:196)
                at com.racebuddy2.Results.access[=12=]0(Results.java:34)
                at com.racebuddy2.Results.onClick(Results.java:82)
                at android.view.View.performClick(View.java:4456)
                at android.view.View$PerformClick.run(View.java:18465)
                at android.os.Handler.handleCallback(Handler.java:733)
                at android.os.Handler.dispatchMessage(Handler.java:95)
                at android.os.Looper.loop(Looper.java:136)
                at android.app.ActivityThread.main(ActivityThread.java:5086)
                at java.lang.reflect.Method.invokeNative(Native Method)
                at java.lang.reflect.Method.invoke(Method.java:515)
                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
                at dalvik.system.NativeStart.main(Native Method)

M 使用 facebook sdk 3.22.0 作为 gradle 给出 that.What 我应该怎么做?错误在哪里。 :(

我让它在我这边工作。似乎 就是答案。

我能够登录,因为我在代码中将 facebook 应用程序 ID 作为字符串,但我需要它在元数据中才能使这部分工作。