繁体   English   中英

无法从源类型转换为目标类型

[英]Cannot cast from source type to destination type

我是C#的新手,所以我在做一些教程。 当我尝试从Xamarin Studio运行Android教程教程时,出现此错误:

引发了System.InvalidCastException。 无法从源类型转换为目标类型。

这是给出错误的代码:

public Java.Lang.Object [] GetSections ()
{ 
    var intPtr = JNIEnv.NewArray (sections.ToArray ());
    var array = new JavaArray<Java.Lang.Object> (intPtr, JniHandleOwnership.TransferLocalRef);
    return (Java.Lang.Object []) array;
}

我怎样才能解决这个问题?

您正在将JavaArray<Java.Lang.Object>强制JavaArray<Java.Lang.Object>Java.Lang.Object []

JavaArray<Java.Lang.Object> GetSessions()的返回类型更改为JavaArray<Java.Lang.Object>

public JavaArray<Java.Lang.Object> GetSections ()
{ 
    var intPtr = JNIEnv.NewArray (sections.ToArray ());
    return new JavaArray<Java.Lang.Object> (intPtr, JniHandleOwnership.TransferLocalRef);
}

您的第二个问题可能意味着您已经实现了一个接口,该接口的GetSections方法需要Java.Lang.Object的返回类型。

如果您自己创建接口,那么您可能会在此方法中犯同样的错误。

所以:

public JavaArray<Java.Lang.Object> GetSections ()
{ 
    var intPtr = JNIEnv.NewArray (sections.ToArray ());
    return new JavaArray<Java.Lang.Object> (intPtr, JniHandleOwnership.TransferLocalRef);
} 

并且您的界面应如下所示:

public JavaArray<Java.Lang.Object> GetSections ();

我想你两次犯了同样的错误

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM