You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Xamarin Forms 4.5+到5.0出现MaterialTextView转Toolbar错误如何解决

Xamarin Forms 4.5.x升级至5.0 Android端类型转换异常解决方案

抛出异常:Unable to convert instance of type 'Google.Android.Material.TextView.MaterialTextView' to type 'AndroidX.AppCompat.Widget.Toolbar'
异常截图:
异常截图

以下是按优先级排序的可行解决方案:

  • 修正Toolbar布局文件
    打开Android项目Resources/layout目录下的Toolbar.axml(或Toolbar.xml),确认根节点为androidx.appcompat.widget.Toolbar,不要误用MaterialTextView作为根控件。正确的布局示例如下:
<androidx.appcompat.widget.Toolbar 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    android:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
  • 校验应用主题配置
    打开Resources/values/styles.xml,确认应用基础主题继承自MaterialComponents系列主题,示例如下:
<style name="MainTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

不要自定义错误的toolbarStyle属性强制替换Toolbar控件类型。

  • 清理项目缓存
    删除Android项目根目录下的bin、obj文件夹,再执行完整的重新生成操作,避免旧版本的资源缓存残留导致类型引用错误。
  • 适配自定义渲染器(如果使用)
    如果你自定义了NavigationPage的Android平台渲染器,需要同步修改代码适配Xamarin Forms 5.0的AndroidX组件体系,移除旧的Android Support包控件引用,不要将Toolbar错误转换为MaterialTextView类型。

内容的提问来源于stack exchange,提问作者Deathgar Vyathemskiy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 20:45:01