Proguard删除了Facebook Sdk Share Dialog Content

时间:2015-03-26 13:35:27

标签: android facebook proguard facebook-android-sdk facebook-share

我在我的android项目中使用proguard。 每当我打开Facebook for Android的分享对话框时,它就会变空。

facebook sdk版本是3.23.1

if(FacebookDialog.canPresentShareDialog(thisObj, FacebookDialog.ShareDialogFeature.SHARE_DIALOG)){
    OpenGraphObject object = OpenGraphObject.Factory.createForPost("namespace:"+obj.object);
    object.setProperty("title", obj.title);
    object.setProperty("image", obj.image);
    object.setProperty("url", obj.url);
    object.setProperty("description", obj.description);
    OpenGraphAction action = GraphObject.Factory.create(OpenGraphAction.class);
    action.setType("namespace:"+obj.action);
    action.setProperty(obj.object, object);
    FacebookDialog shareDialog = new FacebookDialog.OpenGraphActionDialogBuilder(thisObj, action, obj.object).build();
    fbUiLifecycleHelper.trackPendingDialogCall(shareDialog.present());
}

这个代码在没有proguard的情况下使用时效果很好,一切都很容易分享,我还在Facebook上正确提交了Key Hashes,用于不同的签名。

每当我使用Proguard obuscation时,我会在sharedialog中获得空标题,图像或描述,所有数据都会丢失,有时它会显示错误,有时会无误地关闭

-keep class com.facebook。** {*; }

-keepattributes签名

我还使用了许多包含这些标签的proguard标签,但是当共享对话框完美运行时,唯一的情况是当我通过标签“-dontobfuscate”禁用模糊处理时。

希望有人有类似的问题,可以帮助我。

有时日志显示序列化错误等错误,我也尝试了来自proguard官方网站的许多代码,如下所示,但这从未解决问题,自从我在stackoverflow上搜索问题并使用各种程序编译apk文件已经2天了选项。

-keepnames class * implements java.io.Serializable

-keepclassmembernames class * implements java.io.Serializable {
    private static final java.io.ObjectStreamField[] serialPersistentFields;
    private void writeObject(java.io.ObjectOutputStream);
    private void readObject(java.io.ObjectInputStream);
    java.lang.Object writeReplace();
    java.lang.Object readResolve();
}

1 个答案:

答案 0 :(得分:0)

较旧的Facebook Sdk在使用proguard时出错。 现在新的Facebook Sdk版本4.0.0和4.0.1没有给proguard带来任何错误。 但是为了使用新的sdk,我更新了以下内容 1)Android没有正式支持Eclipse,因此迁移到Android Studio。 2)使用facebook sdk作为Gradle Dependency而不是项目(就像我们在Eclipse或旧版本的sdk中所做的那样)。无需导入任何项目,只需将此行添加到gradle dependencies

即可
compile "com.facebook.android:facebook-android-sdk:4.0.1"

这就是说,在这些变化之后,没有错误地顺利运行,但我确实遇到了很多迁移问题。祝你好运