c# - Facebook v3 sdk monodroid 绑定(bind)

标签 c# facebook binding xamarin.android xamarin

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

我在设置新绑定(bind)时遇到问题,基本上是 com.facebook.android.Facebook类现已弃用,Facebook.Authorize替换为 Session .我能够创建新的 facebook sdk 的 jar 文件,但是 Session查看 .dll 时,类未显示在 visual studio 的对象浏览器中。 Session类是公共(public)的并实现 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']"/>

现在绑定(bind)可以成功构建了。您可能认为我现在可以构建和部署我的应用程序,但出现了另一个问题。添加 .jar 后文件和 .dll文件到我的应用程序我在构建时遇到了这些错误。

Error   62   package com.facebook.widget.GraphObjectAdapter does not exist
        com.facebook.widget.GraphObjectAdapter.DataNeededListener
    E:\Android\FacebookBinding\FacebookBinding\FacebookTest\obj\Debug\android\src\mono\com\facebook\widget\GraphObjectAdapter_DataNeededListenerImplementor.java    8   41  FacebookTest
Error   63   package com.facebook.widget.GraphObjectPagingLoader does not exist
        com.facebook.widget.GraphObjectPagingLoader.OnErrorListener
    E:\Android\FacebookBinding\FacebookBinding\FacebookTest\obj\Debug\android\src\mono\com\facebook\widget\GraphObjectPagingLoader_OnErrorListenerImplementor.java  8   46  FacebookTest

我现在不知道如何在这里进行。对到达此位置的任何步骤有何建议或意见?

最佳答案

Xamarin 正在发布新版本的 Mono for Android 4.7.x,该版本应该公开更多 Facebook 在其 .jar 文件中使用的 java 库。我切换到 beta channel 并尝试再次编译它,我能够使用 GraphObject。我认为仍然需要对 Metadata.xml 文件进行一些处理才能使整个 .jar 绑定(bind),但这是朝着正确方向迈出的一步。

关于c# - Facebook v3 sdk monodroid 绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14527512/

相关文章:

c# - Entity Framework DBContext 数据绑定(bind)问题

c# - 转换为十六进制?

C#超时后中止异步HttpWebRequest

c# - 在不更新 Database First Entity Framework MVC 应用程序中的其他模型的情况下向模型 (edmx) 添加新表

javascript - Facebook 和 Google+ 按钮对齐停止工作

c# - 具有空值的 WPF ComboBox SelectedValue 绑定(bind)显示为空白

c# - 如何在 .NET Core 的主布局 View 中呈现特定 Controller 的 Action ?

javascript - 使用 facebook connect 触发功能

swift - 如何快速检查 Facebook 的首次登录?

java - 不允许 JTable 绑定(bind)