2012-07-14 3 views
0

BugSense 용 Java Binding Library를 만들려고하고 있지만 메서드 중 하나에 C#의 예약어 인 "params"라는 매개 변수가 있습니다. 나는 이름을 바꾸기 위해 Metadata.xml 파일을 사용하려고 시도했으나, 메소드 나 매개 변수는 말할 것도없고, 클래스에 액세스하는 방법을 알 수 없다. 여기 Java Bindings Library의 "params"매개 변수의 이름을 Android 용 Mono로 바꿉니 까?

는 발생있어 문제 코드 : 여기

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> 

나는 내가 생각할 수있는 모든 것을 시도했다. 도와주세요!

+0

의견을 downvote 할 수 있습니까? :: sigh :: – DFX

+0

BugSense를 MonoDroid에 바인딩 할 수 있습니까? 코드를 공유하고 싶습니까? – Casper

답변

0

Android 용 현재 버전의 버그 일뿐입니다. 베타 버전 인 4.2.4 빌드로 업데이트하면 모든 것이 잘 컴파일됩니다.