public unsafe PayGuardianException(global::Com.Bpn.Payguardian.Android.Exception.ErrorCode p0)
            : base(IntPtr.Zero, JniHandleOwnership.DoNotTransfer)
        {
            if (((global::Java.Lang.Throwable) this).Handle != IntPtr.Zero)
            {
                return;
            }

            try {
                JValue *__args = stackalloc JValue [1];
                __args [0] = new JValue(p0);
                if (((object)this).GetType() != typeof(PayGuardianException))
                {
                    SetHandle(
                        global::Android.Runtime.JNIEnv.StartCreateInstance(((object)this).GetType(), "(Lcom/bpn/payguardian/android/exception/ErrorCode;)V", __args),
                        JniHandleOwnership.TransferLocalRef);
                    global::Android.Runtime.JNIEnv.FinishCreateInstance(((global::Java.Lang.Throwable) this).Handle, "(Lcom/bpn/payguardian/android/exception/ErrorCode;)V", __args);
                    return;
                }

                if (id_ctor_Lcom_bpn_payguardian_android_exception_ErrorCode_ == IntPtr.Zero)
                {
                    id_ctor_Lcom_bpn_payguardian_android_exception_ErrorCode_ = JNIEnv.GetMethodID(class_ref, "<init>", "(Lcom/bpn/payguardian/android/exception/ErrorCode;)V");
                }
                SetHandle(
                    global::Android.Runtime.JNIEnv.StartCreateInstance(class_ref, id_ctor_Lcom_bpn_payguardian_android_exception_ErrorCode_, __args),
                    JniHandleOwnership.TransferLocalRef);
                JNIEnv.FinishCreateInstance(((global::Java.Lang.Throwable) this).Handle, class_ref, id_ctor_Lcom_bpn_payguardian_android_exception_ErrorCode_, __args);
            } finally {
            }
        }
        public static unsafe global::Com.Bpn.Payguardian.Android.Exception.ErrorCode ValueOf(string p0)
        {
            if (id_valueOf_Ljava_lang_String_ == IntPtr.Zero)
            {
                id_valueOf_Ljava_lang_String_ = JNIEnv.GetStaticMethodID(class_ref, "valueOf", "(Ljava/lang/String;)Lcom/bpn/payguardian/android/exception/ErrorCode;");
            }
            IntPtr native_p0 = JNIEnv.NewString(p0);

            try {
                JValue *__args = stackalloc JValue [1];
                __args [0] = new JValue(native_p0);
                global::Com.Bpn.Payguardian.Android.Exception.ErrorCode __ret = global::Java.Lang.Object.GetObject <global::Com.Bpn.Payguardian.Android.Exception.ErrorCode> (JNIEnv.CallStaticObjectMethod(class_ref, id_valueOf_Ljava_lang_String_, __args), JniHandleOwnership.TransferLocalRef);
                return(__ret);
            } finally {
                JNIEnv.DeleteLocalRef(native_p0);
            }
        }