Android Studio导入SVG失败:解析SVG时出现内部错误
解决Android Studio Vector Asset导入SVG报错“Internal error parsing xxx.svg”的方案
嘿,你这问题确实有点闹心——同一SVG在别的机子能正常导入,自己的笔记本哪怕恢复出厂、重装AS都搞不定,太折腾人了。结合我处理类似问题的经验,给你几个针对性的排查方向:
仔细核对SVG文件的兼容性细节
虽然其他设备能导入,但不妨检查下你的SVG有没有AS Vector Asset不兼容的特性:- 把内联的CSS样式(比如
style="fill:#ff0000")改成SVG属性(fill="#ff0000") - 移除SVG里的滤镜(
filter标签)、复杂渐变这类效果,部分AS版本对这些支持不稳定 - 确保SVG的
viewBox属性是明确的数值(比如viewBox="0 0 24 24"),别留空或用百分比
- 把内联的CSS样式(比如
彻底清理Android Studio的残留缓存
有时候重装AS不会完全删除用户目录下的缓存文件,试试手动删掉这些文件夹:- Windows系统:
C:\Users\[你的用户名]\.AndroidStudio[版本号]\system - Mac系统:
~/Library/Application Support/Google/AndroidStudio[版本号]/system
删除后重启AS,再尝试导入SVG。
- Windows系统:
切换到AS自带的JDK版本
Vector Asset工具对JDK版本比较敏感,你可以切换成AS内嵌的JDK试试:- 打开AS,进入
File > Project Structure > SDK Location - 在
JDK location选项里选择Embedded JDK(一般在AS安装目录的jbr文件夹里) - 重启AS后再测试导入操作。
- 打开AS,进入
手动转换SVG为VectorDrawable
如果以上方法都没用,咱们可以绕过Vector Asset工具,手动转换:
找到你Android SDK的build-tools目录(比如SDK/build-tools/34.0.0/),里面有个svg2vd工具,打开终端执行命令:svg2vd -i /path/to/your/abc.svg -o /path/to/output/vector_drawable.xml把生成的XML文件复制到项目的
res/drawable目录就能直接用了。排查系统环境的干扰
恢复出厂后有没有安装特殊的杀毒软件、防火墙?有些安全工具会拦截AS的文件解析进程,暂时关闭这类软件再试试导入,说不定就能解决。
内容的提问来源于stack exchange,提问作者Kok Soon
相关产品推荐
相关产品推荐

