Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.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应用程序中已禁用com.facebook.share.widget.ShareButton_Android_Facebook Share - Fatal编程技术网

Android应用程序中已禁用com.facebook.share.widget.ShareButton

Android应用程序中已禁用com.facebook.share.widget.ShareButton,android,facebook-share,Android,Facebook Share,我的Android应用程序中有一个Facebook共享按钮。当我将它与ImageButton或ImageView onClick一起使用时,它在调试模式下工作得非常好。但APK生成因发布类型而失败 我在Stackoverflow问题的帮助下解决了这个问题,但最终导致FB共享按钮被禁用 根据这里的一些答案,尝试添加以下代码,但仍然不起作用 shareButton.setShareContent(linkContent); 下面是我调用onClick函数的XML <com.facebook.

我的Android应用程序中有一个Facebook共享按钮。当我将它与ImageButton或ImageView onClick一起使用时,它在调试模式下工作得非常好。但APK生成因发布类型而失败

我在Stackoverflow问题的帮助下解决了这个问题,但最终导致FB共享按钮被禁用

根据这里的一些答案,尝试添加以下代码,但仍然不起作用

shareButton.setShareContent(linkContent);
下面是我调用onClick函数的XML

<com.facebook.share.widget.ShareButton
    android:id="@+id/imgFBShare"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/lblChangePasswordTitle"
    android:layout_alignEnd="@+id/scrollView2"
    android:layout_marginBottom="12dp"
    android:onClick="shareFB"
    app:srcCompat="@drawable/com_facebook_button_icon_blue" />

下面是我的onClick“shareFB”代码

public void shareFB(视图){
callbackManager=callbackManager.Factory.create();
List permissionNeeds=Arrays.asList(“发布动作”);
//此loginManager可帮助您消除向UI添加LoginButton的情况
loginManager=loginManager.getInstance();
loginManager.logInWithPublishPermissions(这是PermissionRequirements);
if(ShareDialog.canShow(ShareLinkContent.class)){
位图image=BitmapFactory.decodeResource(getResources(),R.mipmap.ic_启动器);
uriimageuri=Uri.parse(main\u image\u url);
ShareButton ShareButton=(ShareButton)findViewById(R.id.imgFBShare);
ShareLinkContent=新的ShareLinkContent.Builder()
.setContentTitle(简短标题)
.setContentDescription(
简短描述)
.setContentUrl(Uri.parse(“http://mywebsite.com/android-app-download/"))
.setImageUrl(imageUri)
.build();
shareButton.setShareContent(链接内容);
显示(链接内容);
}
}
@凌驾
ActivityResult上受保护的void(int请求代码、int响应代码、意图数据)
{
super.onActivityResult(请求代码、响应代码、数据);
callbackManager.onActivityResult(请求代码、响应代码、数据);
}

我遗漏了什么吗?

在详细阅读了每一条信息之后,我通过两个非常简单的步骤找到了解决方案

  • 而不是
    
    
    public void shareFB (View view) {
            callbackManager = CallbackManager.Factory.create();
    
            List<String> permissionNeeds = Arrays.asList("publish_actions");
    
            //this loginManager helps you eliminate adding a LoginButton to your UI
            loginManager = LoginManager.getInstance();
    
            loginManager.logInWithPublishPermissions(this, permissionNeeds);
    
            if (ShareDialog.canShow(ShareLinkContent.class)) {
                Bitmap image = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);
                Uri imageUri = Uri.parse(main_image_url);
    
                ShareButton shareButton = (ShareButton) findViewById(R.id.imgFBShare);
    
                ShareLinkContent linkContent = new ShareLinkContent.Builder()
                        .setContentTitle(short_headline)
                        .setContentDescription(
                                short_description)
                        .setContentUrl(Uri.parse("http://mywebsite.com/android-app-download/"))
                        .setImageUrl(imageUri)
                        .build();
    
                shareButton.setShareContent(linkContent);
    
                shareDialog.show(linkContent);
            }
        }
    
        @Override
        protected void onActivityResult(int requestCode, int responseCode, Intent data)
        {
            super.onActivityResult(requestCode, responseCode, data);
            callbackManager.onActivityResult(requestCode, responseCode, data);
        }