2

我正在尝试使用 Facebook SDK 修复一些绑定错误。我在同一个类中有两个具有相同名称“setPermissions”的函数。绑定生成器生成IntPtrMonodroid为每个id_setPermissions_Ljava_util_List_. 我需要通过将其中一个函数更改为不同的名称来解决此问题,以便绑定生成器不会创建相同的变量名称。

在弄清楚我需要在Metadata.xml文件中设置什么时,我陷入了困境。到目前为止我有这个:

<attr path="/api/package[@name='com.facebook']/class[@name='Session.OpenRequest']/method[@name='setPermissions']" name="managedName">OpenRequestSetPermission</attr>

上述行的问题会将两个函数更改为相同的名称,而不是解决我在生成时遇到的问题static IntPtr id_setPermissions_Ljava_util_List_;

它们有不同的返回类型,但我不知道这是否有助于确定Metadata.xml.

4

1 回答 1

0

有一些方法可以通过名称和签名来确定函数。例如,如果您有功能

int remove(int a);
int remove(int a, object b);
int remove(float a, object b);

你可以找到第二个

<attr path="/api/package[@name='org.mapsforge.android.maps.overlay']/class[@name='OverlayList']/method[@name='remove' and count(parameter)=2 and parameter[1][@type='int']]" name="managedReturn">Java.Lang.Object</attr>

也许有办法通过返回类型过滤函数,遗憾的是我不知道。

于 2013-06-14T09:46:16.383 回答