我正在使用此代码使用自定义位图向Facebook提交自定义操作:
//object
OpenGraphObject pic = OpenGraphObject.Factory.createForPost("mobileglobalshapers:globalpicture");
pic.setProperty("title","Shape Latam");
//pic.setProperty("image","https://emaginelab.com/globalshapers/public/placeholder_400.jpg");
pic.setProperty("description","test description");
pic.setProperty("url","http://emaginelab.com/globalshapers/public/object.html");
List<Bitmap> images = new ArrayList<Bitmap>();
images.add(combineInnerViews(imagesWrapper));
//action
OpenGraphAction action = GraphObject.Factory.create(OpenGraphAction.class);
action.setType("mobileglobalshapers:take");
action.setProperty("globalpicture",pic);
//show
FacebookDialog shareDialog = new FacebookDialog.OpenGraphActionDialogBuilder(this,action,"globalpicture")
.setImageAttachmentsForObject("globalpicture",images,true)
.build();
uiHelper.trackPendingDialogCall(shareDialog.present());
这里combineInnerViews(imagesWrapper)返回一个位图。
问题是,当我调用此方法时,Facebook应用程序崩溃而不显示,它会自动将我返回到应用程序。它不会产生任何日志,所以我不知道会出现什么问题。
注意:在操作系统早于4.1的设备中似乎不会发生此错误。我已经在Galaxy S2和Galaxy Ace(4.1.2和2.3.6)中进行了测试,它不会崩溃。
我正在使用facebook SDK 3.8.0
为什么会发生这种情况?
答案 0 :(得分:3)
没关系,我找到了原因。
在AndroidManifest.xml中声明内容提供程序时,需要添加以下属性:
android:exported="true"
否则操作系统将抛出安全异常,Facebook意图将崩溃