5

Facebook SDKのバージョン3用に新しいモノドロイドバインディングを作成しようとした人はいますか?私はMonodroidFacebookBindingで作成された古いバージョンのFacebookSDKを使用しています。ただし、新しいFacebook SDKには、廃止されたメソッドのほとんどすべてが含まれています。

新しいバインディングの設定に問題があります。基本的に、com.facebook.android.Facebookクラスは非推奨になり、Facebook.Authorizeはに置き換えられましたSession。新しいFacebookSDKのjarファイルを作成できますがSession、.dllを表示すると、VisualStudioのオブジェクトブラウザーにクラスが表示されません。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、ビルド時にこれらのエラーが発生します。

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

ここでの進め方がわからなくなってしまいました。この場所にたどり着くためのステップのいずれかに対する提案やコメントはありますか?

4

2 に答える 2

0

Xamarinは、Mono for AndroidFacebookがファイルで使用しているJavaライブラリをさらに公開する新しいバージョンの4.7.xをリリースしてい.jarます。ベータチャンネルに切り替えて、これをもう一度コンパイルしようとすると、を使用できるようになりますGraphObject。バインドMetadata.xml全体を取得するためにファイルをマッサージすることはまだあると思いますが、これは正しい方向への一歩です。.jar

于 2013-04-18T21:44:34.047 に答える
0

xamarinをIDEとして使用している場合は、コンポーネントサイトからFacebookのdllを直接ダウンロードして、SDKのバインドの問題を回避できます。

http://components.xamarin.com/

于 2013-05-20T13:00:33.670 に答える