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