簡體   English   中英

Xamarin.Android:下列方法或屬性之間的調用不明確

[英]Xamarin.Android: The call is ambiguous between the following methods or properties

我收到以下錯誤:

該調用在以下方法或屬性之間是不明確的:'​​Java.Interop.JavaObjectExtensions.JavaCast(Android.Runtime.IJavaObject)'和'Android.Runtime.Extensions.JavaCast(Android.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

可能會幫助某人!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM