Переименовать параметр "params" в библиотеке привязок Java с помощью Mono для Android?
Я пытаюсь создать библиотеку привязки Java для BugSense, но один из методов имеет параметр с именем "params", который является зарезервированным словом в C#. Я пытался использовать файл Metadata.xml для его переименования, но я не могу понять, как получить доступ к классу, не говоря уже о методе или его параметре.
Вот код проблемы, который он генерирует:
namespace Com.Bugsense.Trace {
[global::Android.Runtime.Register ("com/bugsense/trace/ActivityAsyncTask", DoNotGenerateAcw=true)]
internal partial class ActivityAsyncTaskInvoker : ActivityAsyncTask {
static IntPtr id_doInBackground_arrayLjava_lang_Object_;
[Register ("doInBackground", "([Ljava/lang/Object;)Ljava/lang/Object;", "GetDoInBackground_arrayLjava_lang_Object_Handler")]
protected override global::Java.Lang.Object DoInBackground (global::Java.Lang.Object[] params)
{
if (id_doInBackground_arrayLjava_lang_Object_ == IntPtr.Zero)
id_doInBackground_arrayLjava_lang_Object_ = JNIEnv.GetMethodID (class_ref, "doInBackground", "([Ljava/lang/Object;)Ljava/lang/Object;");
IntPtr native_params = JNIEnv.NewArray (params);
global::Java.Lang.Object __ret = Java.Lang.Object.GetObject<global::Java.Lang.Object> (JNIEnv.CallObjectMethod (Handle, id_doInBackground_arrayLjava_lang_Object_, new JValue (native_params)), JniHandleOwnership.TransferLocalRef);
if (params != null) {
JNIEnv.CopyArray (native_params, params);
JNIEnv.DeleteLocalRef (native_params);
}
return __ret;
}
}
}
Вот мое отображение, которое, я чувствую, должно работать, но просто отказывается.
<attr path="/api/package[@name='com.bugsense.trace']/class[@name='ActivityAsyncTaskInvoker']/method[@name='doInBackground']/parameter[@name='params']" name="managedName">@params</attr>
Я перепробовал все, что мог придумать. Пожалуйста помоги!
1 ответ
Решение
Итак, оказывается, это просто ошибка в текущей версии Mono для Android. Если вы обновляетесь до версии 4.2.4, которая находится в бета-версии, все компилируется нормально.