使用Mono for Android重命名Java Bindings Library中的“params”参数?

时间:2012-07-14 11:00:59

标签: mono xamarin.android bugsense

我正在尝试为BugSense创建一个Java绑定库,但其中一个方法有一个名为“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 个答案:

答案 0 :(得分:0)

所以,事实证明它只是当前版本的Mono for Android中的一个错误。如果您更新到处于测试阶段的4.2.4版本,则所有内容都可以正常编译。