0

我收到以下错误:

以下方法或属性之间的调用不明确:“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

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

4

2 回答 2

1

仅适用于仍然遇到相同错误的人!

就我而言,我删除了对命名空间的引用

Android.Runtime

可能是你的情况

Android.Runtime.Extension

可能会帮助某人!

于 2018-04-20T11:41:07.553 回答
0

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

将鼠标悬停在代码上的错误上,然后单击“灯”图标并选择您要使用的方法。您也可以左键单击代码上的错误,然后按 (ctrl + . (dot)) 并选择所需的方法。

在此处输入图像描述

在此处输入图像描述

于 2017-03-15T13:01:06.000 回答