gpt4 book ai didi

c# - Xamarin Android 6.0 Java.Lang.NoSuchMethodError 与 View.SetText

转载 作者:太空宇宙 更新时间:2023-11-03 12:18:42 25 4
gpt4 key购买 nike

我为 Label 制作了一个自定义渲染器,将 HTML 代码渲染为文本。

当我尝试设置格式化文本时,出现此错误:

未处理的异常:Java.Lang.NoSuchMethodError: 没有静态方法“Landroid/text/Html;.fromHtml(Ljava/lang/String;I)Landroid/text/Spanned;”发生了

这是我的一段代码:

Control.SetText(Html.FromHtml(View.Text.ToString(), FromHtmlOptions.ModeLegacy), TextView.BufferType.Spannable);

这只发生在 Android 6.0 上,从 7.0 开始一切正常。

我该如何解决这个问题?

有解决办法吗?

谢谢!

更新

感谢@Jon Douglas 我用这种方式解决了问题:

 if (global::Android.OS.Build.VERSION.SdkInt >= global::Android.OS.BuildVersionCodes.N) {
Control.SetText(Html.FromHtml(View.Text.ToString(), FromHtmlOptions.ModeLegacy), TextView.BufferType.Spannable);
} else {
// For API < 24
Control.SetText(Html.FromHtml(View.Text.ToString()), TextView.BufferType.Normal);
}

对于“else”路径,VisualStudio 告诉我它已被弃用,但它仍然可以编译。

最佳答案

您正在使用 API 24 中引入的重载方法。因此,为了正确支持这一点,您将需要一个 runtime check。检查 < API 24您将在其中使用非 API 的值 24 Html.FromHtml过载。

参见 Html您可以适当使用的重载类。例如:

1 < API 24 的参数方法 - https://developer.android.com/reference/android/text/Html.html#fromHtml(java.lang.String)

3 < API 24 的参数方法 - https://developer.android.com/reference/android/text/Html.html#fromHtml(java.lang.String, android.text.Html.ImageGetter, android.text.Html.TagHandler)

关于c# - Xamarin Android 6.0 Java.Lang.NoSuchMethodError 与 View.SetText,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48496458/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com