Facebook v3 sdk monodroid绑定

时间:2013-01-25 17:51:34

标签: c# facebook binding xamarin.android xamarin

有没有人试图为Facebook sdk的第3版创建一个新的monodroid绑定?我一直在使用用Monodroid Facebook Binding创建的旧版本的Facebook sdk。但新的Facebook sdk几乎所有这些方法都被弃用了。

我在设置新绑定时遇到问题,基本上{@ 1}}类现已弃用,com.facebook.android.Facebook已替换为Facebook.Authorize。我可以创建一个新的facebook sdk的jar文件,但是当查看.dll时,Session类没有显示在visual studio的对象浏览器中。 Session类是公开的,并实现了Session引用中包含的java.io.Serializable。任何帮助或建议将不胜感激。

编辑: 在用这个搞乱了几天之后,我能够通过一个解决方案来解决我的问题,删除Mono.Android中的节点。

Metadata.xml

这带来了其他问题,可以通过添加更多<remove-node path="/api/package[@name='com.facebook']/class[@name='Session.OpenRequest']/method[@name='setPermissions']"/> 标记来解决。

<attr>

在构建此尝试之后,我遇到了 <remove-node path="/api/package[@name='com.facebook.model']/class[@name='PropertyName']"/> <attr path="/api/package[@name='com.facebook.widget']/class[@name='GraphObjectAdapter']" name="visibility">public</attr> <attr path="/api/package[@name='com.facebook.widget']/class[@name='GraphObjectPagingLoader']" name="visibility">public</attr> <attr path="/api/package[@name='com.facebook.widget']/class[@name='FacebookFragment']" name="visibility">public</attr> <attr path="/api/package[@name='com.facebook.widget']/class[@name='SimpleGraphObjectCursor']" name="visibility">public</attr> <attr path="/api/package[@name='com.facebook.widget']/interface[@name='GraphObjectCursor']" name="visibility">public</attr> 类中出现多个错误的问题。

GraphObject.SectionAndItem

为了解决这些问题,我删除了与这些问题相关的节点。

Error   41  Argument 1: cannot convert from 'Com.Facebook.Widget.GraphObjectAdapter.SectionAndItem.Type' to 'System.IntPtr' E:\Android\FacebookBinding\FacebookBinding\FacebookBinding\obj\Debug\generated\src\Com.Facebook.Widget.GraphObjectAdapter.cs    345 64  FacebookBinding
Error   39  Operator '!=' cannot be applied to operands of type 'Com.Facebook.Widget.GraphObjectAdapter.SectionAndItem.Type' and 'System.Type'  E:\Android\FacebookBinding\FacebookBinding\FacebookBinding\obj\Debug\generated\src\Com.Facebook.Widget.GraphObjectAdapter.cs    344 9   FacebookBinding
Error   47  Operator '==' cannot be applied to operands of type 'Com.Facebook.Widget.GraphObjectAdapter.SectionAndItem.Type' and 'System.Type'  E:\Android\FacebookBinding\FacebookBinding\FacebookBinding\obj\Debug\generated\src\Com.Facebook.Widget.GraphObjectAdapter.cs    381 9   FacebookBinding
Error   40  The best overloaded method match for 'Android.Runtime.JNIEnv.CreateInstance(System.IntPtr, string, params Android.Runtime.JValue[])' has some invalid arguments E:\Android\FacebookBinding\FacebookBinding\FacebookBinding\obj\Debug\generated\src\Com.Facebook.Widget.GraphObjectAdapter.cs    345 17  FacebookBinding

现在可以成功构建绑定。您认为我现在可以构建和部署我的应用程序,另一个问题出现了。将 <remove-node path="/api/package[@name='com.facebook.widget']/class[@name='GraphObjectAdapter.SectionAndItem']"/> <remove-node path="/api/package[@name='com.facebook.widget']/class[@name='GraphObjectAdapter.SectionAndItem.Type']"/> 文件和.jar文件添加到我的应用程序后,我在构建时遇到了这些错误。

.dll

我现在不知道如何继续前进。对到达这个地方的任何步骤有任何建议或意见吗?

2 个答案:

答案 0 :(得分:0)

Xamarin发布了Mono for Android 4.7.x的新版本,该版本应该公开Facebook正在其.jar文件中使用的更多Java库。我切换到测试频道并尝试再次编译,我可以使用GraphObject。我认为仍然需要对Metadata.xml文件进行一些按摩以获得整个.jar限制,但这是朝着正确方向迈出的一步。

答案 1 :(得分:0)

如果你使用xamarin作为IDE,你可以从组件网站直接下载facebook的dll并避免绑定sdk的问题

http://components.xamarin.com/