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

Android中ImageView引用drawable目录SVG文件崩溃如何解决

问题原因

Android 原生资源系统不支持直接识别原始SVG格式文件。你把后缀为.svg的源文件直接放到res/drawable目录后,系统会按Android原生Drawable的规则解析文件,碰到SVG专属的<svg>根标签、属性时无法识别,就会抛出InflateException导致布局加载失败、应用崩溃。
你提供的SVG图标本身代码没有语法问题,纯粹是使用方式不对。

正确使用步骤(官方推荐方案,无额外兼容问题)
  • 不要直接把原始SVG文件拷进drawable目录,用Android Studio自带工具转成系统可识别的VectorDrawable格式:
    • 在项目目录树里右键点击res/drawable文件夹,依次选择 New -> Vector Asset
    • 弹窗里Asset Source选择Local file (SVG, PSD),点击浏览按钮选中你本地存的那个SVG文件
    • 工具会自动完成格式转换,你可以在预览窗口确认图标显示正常,按需调整尺寸、不透明度参数后,点Next完成导入
  • 导入完成后,drawable目录下会生成一个同名的XML文件,这个就是Android可识别的矢量图资源,直接把它设置给ImageView的android:src属性即可正常显示。
低版本兼容配置

如果你的应用需要兼容API 21以下的设备,额外做两步配置即可:

  • 在模块级build.gradle的defaultConfig块里开启矢量图兼容支持:
android {
    defaultConfig {
        vectorDrawables.useSupportLibrary = true
    }
}
  • 确保项目已经引入AndroidX AppCompat依赖,布局中使用AppCompatImageView替代原生ImageView,引用资源时用app:srcCompat代替android:src属性设置矢量图资源。

注意:不要尝试手动把SVG文件后缀改成.xml直接使用,文件内部的标签结构不符合Android VectorDrawable规范,解析器识别不了,还是会崩溃。

内容的提问来源于stack exchange,提问作者Aniket Jain

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 00:18:24