Проблем със свързването на 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