Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-Facebook SDK 4.0.0-ShareDialog不';图片共享时不显示_Android_Facebook - Fatal编程技术网

Android-Facebook SDK 4.0.0-ShareDialog不';图片共享时不显示

Android-Facebook SDK 4.0.0-ShareDialog不';图片共享时不显示,android,facebook,Android,Facebook,我在使用facebook SDK共享图像时遇到问题。 我创建了一个按钮来调用本机facebook应用程序共享对话框。 但不幸的是,它没有出现。以及DDMS上的错误消息: “未能找到com.facebook.app.FacebookContentProvider798741073537656的提供商信息” 请帮忙给点提示。谢谢大家! protected void onCreate(Bundle savedInstanceState) { FacebookSdk.sdkInitialize(

我在使用facebook SDK共享图像时遇到问题。 我创建了一个按钮来调用本机facebook应用程序共享对话框。 但不幸的是,它没有出现。以及DDMS上的错误消息:

“未能找到com.facebook.app.FacebookContentProvider798741073537656的提供商信息”

请帮忙给点提示。谢谢大家!

protected void onCreate(Bundle savedInstanceState) {
    FacebookSdk.sdkInitialize(getApplicationContext());
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    btn_share = (Button) findViewById(R.id.btn_share);
    shareDialog = new ShareDialog(MainActivity.this);

    btn_share.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Bitmap image = BitmapFactory.decodeFile(path);
            SharePhoto photo = new SharePhoto.Builder().setBitmap(image).build();
            SharePhotoContent content  = new SharePhotoContent.Builder().addPhoto(photo).build();
            shareDialog.show(content);
        }
    });
}

我有一个类似的问题,我缺少的是AndroidManifest.xml中的provider标记。从Facebook文档()中:

您还需要在AndroidManifest.xml中设置ContentProvider,其中{APP_ID}是您的应用程序ID:

<provider android:authorities="com.facebook.app.FacebookContentProvider{APP_ID}"
      android:name="com.facebook.FacebookContentProvider"
      android:exported="true"/>

首先确保您在AndroidManifest.xml中提到了内容提供者

<provider android:authorities="com.facebook.app.FacebookContentProvider1234"
  android:name="com.facebook.FacebookContentProvider"
  android:exported="true"/>

1234是你的应用程序id


第二,使用真实的设备来测试你的应用程序。确保你已经在你的设备上安装了官方的Facebook应用程序。

对我来说,问题是
必须在AndroidManifest.xml sdk的
标记内。

我花了几个小时试图解决这个问题。在我的例子中,提供者标记位于AndroidManifest.xml中的应用程序标记之外。请确保将提供程序包含在应用程序中,而不是外部(希望这有帮助:)


我已经在Glide v4上对此进行了测试+

Glide.with(this)
            .asBitmap()
            .load(YOUR_IMAGE_URL).into(new SimpleTarget<Bitmap>() {
        @Override
        public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {

            SharePhoto sharePhoto1 = new SharePhoto.Builder()
                    .setBitmap(resource)
                    .build();

            ShareContent shareContent = new ShareMediaContent.Builder()
                    .addMedium(sharePhoto1)
                    .build();

            new ShareDialog(getActivity()).show(shareContent, ShareDialog.Mode.AUTOMATIC);
        }
    });
Glide.with(这个)
.asBitmap()
.load(您的图片地址).into(新SimpleTarget()中){
@凌驾

public void onResourceReady(@NonNull Bitmap resource,@Nullable transitionId)您按照所有说明操作了吗?生成了密钥哈希,在清单中添加了FacebookActivity和提供程序。您是否在Status&Review上提交了应用程序?
Glide.with(this)
            .asBitmap()
            .load(YOUR_IMAGE_URL).into(new SimpleTarget<Bitmap>() {
        @Override
        public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {

            SharePhoto sharePhoto1 = new SharePhoto.Builder()
                    .setBitmap(resource)
                    .build();

            ShareContent shareContent = new ShareMediaContent.Builder()
                    .addMedium(sharePhoto1)
                    .build();

            new ShareDialog(getActivity()).show(shareContent, ShareDialog.Mode.AUTOMATIC);
        }
    });
<provider android:authorities="com.facebook.app.FacebookContentProvider{APP_ID}"
      android:name="com.facebook.FacebookContentProvider"
      android:exported="true"/>