Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Android:以下方法或属性之间的调用不明确_C#_Compiler Errors_Xamarin.android_Jnienv - Fatal编程技术网

C# Android:以下方法或属性之间的调用不明确

C# Android:以下方法或属性之间的调用不明确,c#,compiler-errors,xamarin.android,jnienv,C#,Compiler Errors,Xamarin.android,Jnienv,我得到以下错误: 以下方法或属性之间的调用不明确:“Java.Interop.JavaObjectExtensions.JavaCastAndroid.Runtime.IJavaObject”和“Android.Runtime.Extensions.JavaCastAndroid.Runtime.IJavaObject” 使用此代码: // Get a pointer to the Java class. IntPtr jClass = JNIEnv.FindClass("com/company

我得到以下错误:

以下方法或属性之间的调用不明确:“Java.Interop.JavaObjectExtensions.JavaCastAndroid.Runtime.IJavaObject”和“Android.Runtime.Extensions.JavaCastAndroid.Runtime.IJavaObject”

使用此代码:

// Get a pointer to the Java class.
IntPtr jClass = JNIEnv.FindClass("com/companyname/appname/JniClass");

// constructor.
IntPtr defaultConstructor = JNIEnv.GetMethodID(jClass,
                                               "<init>",
                                               "()V");
// new instance of the class.
IntPtr instance = JNIEnv.NewObject(jClass, defaultConstructor);

// Find method.
IntPtr methodID = JNIEnv.GetMethodID(jClass,   "getResult",    "()Ljava/lang/String;");

// Call the method.
IntPtr resultPtr = JNIEnv.CallObjectMethod(instance, methodID);

// Convert the pointer to return value
Java.Lang.Object jObject = new Java.Lang.Object(resultPtr, JniHandleOwnership.TransferLocalRef);
Java.Lang.String result = jObject.JavaCast<Java.Lang.String>(); // Compiler Error

我很好奇为什么编译器认为这段代码是错误的。

当您有两个名称相同但在不同类中的方法,并且Visual Studio需要知道要使用哪个方法时,就会发生这种情况

将鼠标悬停在代码错误上,单击“灯光”图标,然后选择要使用的方法。您也可以左键单击错误代码,然后按ctrl+。点并选择你想要的方法


只是为了那些仍然犯同样错误的人

在我的例子中,我删除了对命名空间的引用

Android.Runtime
可能是你的情况

Android.Runtime.Extension

可能会帮助别人

我有两种将IJavaObject扩展到两个不同名称空间的方法。因此,我只能调用Namespace.ClassName.MethodNameparameter,而不能调用variable.MethodName。但是,这完全超出了使用扩展方法的想法。