为什么我的 SVG 无法在 Vector Asset Studio 中加载

Why is my SVG failing to load in Vector Asset Studio

下面的 SVG 无法在 Android Studio 的 Vector Asset Studio 中打开,导致错误:

“空白预览图! 解析 TareSymbol.svg 时出现异常: 对于输入字符串:“8.7337904mm”解析 XML 文件时出现异常: 文件过早结束。”

为什么以下 SVG 文件与 Vector Asset Studio 不兼容?

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:cc="http://creativecommons.org/ns#"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   version="1.1"
   id="svg20235"
   viewBox="0 0 61.500162 30.946501"
   height="8.7337904mm"
   width="17.356712mm">
  <defs
     id="defs20237" />
  <metadata
     id="metadata20240">
    <rdf:RDF>
      <cc:Work
         rdf:about="">
        <dc:format>image/svg+xml</dc:format>
        <dc:type
           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
        <dc:title></dc:title>
      </cc:Work>
    </rdf:RDF>
  </metadata>
  <g
     transform="translate(-109.24987,-351.17467)"
     id="layer1">
    <path
       d="m 145.03542,367.34167 10.897,-4.49325 -0.009,3.30587 13.69124,0.0372 1.13537,0 0,2.1285 -1.13537,0 -13.69662,-0.0373 -0.009,3.33988 -10.87325,-4.281 z m -13.38814,-13.15875 0,-3.00825 16.97389,0 0,3.00825 -6.8995,0 0,27.93825 -3.15214,0 0,-27.93825 -6.92225,0 z m 3.31725,13.15875 -10.897,4.49325 0.009,-3.3055 -13.69129,-0.0373 -1.13537,0 0,-2.1285 1.13537,0 13.69662,0.0372 0.009,-3.33988 10.87325,4.28063 z"
       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
       id="path20212" />
  </g>
</svg>

Android Studio 的 Vector Asset Studio 目前不支持 SVG 的所有功能。您可以使用此 tool.

将 SVG 转换为 VectorDrawable

希望对您有所帮助。

将在 Inkscape 中生成的 .svg 文件导入 Adob​​e Illustrator 并导出它们可以 100% 解决此问题。

您需要将 svg 的宽度和高度从 mm 更改为使用 px。这是问题解决后的当前解决方法。

已经有一个提交的错误报告here

正如 @Kingsley Adio 所说,您的 SVG 文档必须使用 px 单位。
在 Inkscape 中,我设法通过创建自定义页面大小并将输出单位设置为 px:

来做到这一点

将文本更改为对象为我解决了这个问题。 如果您使用的是 Inkscape:首先单击 Ctrl+K(路径合并),然后单击 Ctrl+J(动态偏移)。

花了几个小时后,我弄清楚了问题,即使使用外部 svg2vectordrawable 脚本也无济于事。

形状的大小 and/or 文档的页面大小 width/height 中不能包含浮点数,例如 14.134 或 3.5

意思是形状和页面的宽度和高度必须是整数!

尝试使用 Vector Asset 工具导入 SVG 时对我有用的东西的汇编(它们并不相互排斥):

  • 将值从 mm 更改为 px(通常在 width / height 属性中找到)
  • 舍入值将值浮点为整数(通常在 width / heightviewBoxstyle 属性中找到)。喜欢224.5。您不必在多边形中执行此操作,而只需在 SVG 节点上执行此操作。

各种选项可能导致此类错误(其中一些已在此处列出)。

可能是在您的 .svg 文件中使用了 rgba(r,g,b,a)。如果找到,只需检查并转换。

提示:您可以在任何文件编辑器中编辑 .svg 文件。

在设置中更改语言对我很有帮助!我的计算机上使用荷兰语作为语言(使用逗号而不是浮点数)并将其更改为英语并重新启动对我有用。

我的 SVG 正在创建(从在线网站),在 viewbox 标签中使用 ,

即:

viewBox="0, 0, 350,450"

将其更改为:

viewBox="0 0 350 450"

允许 Android Studio 导入它

我遇到了类似的问题。我使用的是 Illustrator 2015。问题原来是我的 illustrator 项目中有多个画板,在另存为 svg 文件时我不得不选择一个特定的画板(为什么会这样?不知道)。 通过只有一个包含设计的画板解决我想另存为 svg。

  1. 确保您的插画设计只有一个画板包含
    您要在 android 工作室中用作矢量资产的设计。

  2. 在 Illustrator 文件中 -> 另存为 ->select 下拉列表中的 svg。保留全部 其他选项默认。

  3. 转到 android 工作室,右键单击可绘制对象并单击矢量 资产并导入您新创建的 svg 文件。它会被保存为 可绘制对象中的 xml 文件。