Проблема привязки Monodroid .jar

Я пытаюсь исправить некоторые ошибки привязки с помощью Facebook SDK. У меня есть две функции с одинаковым именем setPermissions в одном классе. IntPtr, сгенерированный генератором привязки Monodroid, создает одно и то же имя переменной для каждого 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.


person Bryan    schedule 30.01.2013    source источник
comment
Не могли бы вы дать соответствующий фрагмент \obj\Debug\api.xml, это может помочь найти способ различать функции.   -  person krzysztofkarolczak    schedule 24.03.2013


Ответы (1)


Есть несколько способов определить функцию по имени и ее сигнатуре. Например, если у вас есть функции

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>

возможно, есть способ отфильтровать функцию по типу возвращаемого значения, к сожалению, я этого не знаю.

person xakpc    schedule 14.06.2013