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
相关产品推荐
相关产品推荐

