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

Xamarin Android矢量图运行报错:需配置VectorDrawableCompat

搞定Xamarin里VectorDrawableCompat的配置错误问题

嘿,这个报错我太熟悉了,之前帮好几个Xamarin开发者解决过,别慌,咱们一步步来捋清楚!

为啥会出这个错?

本质就是你的Xamarin.Android项目没正确配置矢量图的兼容支持,Android运行时找不到VectorDrawableCompat对应的库实现,所以直接抛出了这个异常。

具体解决步骤

  • 第一步:开启AndroidX支持
    打开你的Xamarin.Android项目属性,找到「Android选项」→「高级」:

    • 勾选「启用AndroidX」(现在VectorDrawableCompat属于AndroidX生态,必须开这个)
    • 再勾选「启用Jetifier」,它会自动把旧的支持库代码转换成AndroidX兼容版本,避免冲突。
      要是你习惯手动改项目文件(.csproj),直接加这段配置:
    <PropertyGroup>
      <AndroidUseAndroidX>True</AndroidUseAndroidX>
      <AndroidEnableJetifier>True</AndroidEnableJetifier>
    </PropertyGroup>
    
  • 第二步:装对NuGet包
    打开NuGet包管理器,搜索并安装Xamarin.AndroidX.AppCompat——这个包就是VectorDrawableCompat的老家,要是已经装了,记得更到最新版本,旧版本可能藏着小bug。

  • 第三步:改布局里的ImageView引用
    别再用android:src来引用矢量图啦,换成AppCompat专用的app:srcCompat,而且得给布局根节点加上AppCompat的命名空间:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        ...>
    
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:srcCompat="@drawable/你的矢量图文件名" />
    </LinearLayout>
    

    用app:srcCompat才能让AppCompat库帮你处理低版本系统的矢量图渲染哦。

  • 第四步:清理重建项目
    这步可别忘了!右键项目选「清理」,然后重新生成解决方案——旧的编译缓存经常会让新配置不生效,清完再建就稳多了。

要是做完这些还不行,就检查下你的矢量图文件有没有问题,比如是不是用了太复杂的路径,或者文件名有没有特殊字符~


内容的提问来源于stack exchange,提问作者James Parsons

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:09:43