我收到以下错误:
The call is ambiguous between the following methods or properties: 'Java.Interop.JavaObjectExtensions.JavaCast(Android.Runtime.IJavaObject)' and '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
我很好奇为什么编译器认为此代码是错误的。
最佳答案
仅针对那些仍然遇到相同错误的人!
就我而言,我删除了对命名空间的引用
Android.Runtime
可能在您的情况下
Android.Runtime.Extension
可能会帮助某人!
关于c# - Xamarin.Android : The call is ambiguous between the following methods or properties,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42776321/