【问题标题】:Why is my SVG failing to load in Vector Asset Studio为什么我的 SVG 无法在 Vector Asset Studio 中加载
【发布时间】:2016-08-22 18:20:36
【问题描述】:

下面的 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 android-layout svg android-vectordrawable androidsvg


【解决方案1】:

Android Studio 的 Vector Asset Studio 目前还不支持 SVG 的所有功能。您可以使用 tool 将 SVG 转换为 VectorDrawable。

希望对你有帮助。

【讨论】:

  • 非常感谢您的建议,但不幸的是这也不起作用。
  • 查看此Youtube link 以获取更多参考资料。
  • 感谢您的链接。我可以确认这个工具对我来说适用于一个特定的 svg 文件,其中一个路径被 Android Studio 遗漏了。
  • 此工具现已弃用。建议使用Android studio的矢量素材工具,但还是报错。
【解决方案2】:

将 Inkscape 中生成的 .svg 文件导入 Adob​​e Illustrator 并导出它们 100% 解决了这个问题。

【讨论】:

  • 嗯... Inkscape 是免费的,并且经常被用作“穷人”的 Adob​​e Illustrator。
  • 如果您使用 Sketch,则不是解决方案。
  • 如何使用草图导出图像?
【解决方案3】:

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

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

【讨论】:

    【解决方案4】:

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

    【讨论】:

      【解决方案5】:

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

      【讨论】:

        【解决方案6】:

        花了几个小时后,我发现了问题所在,即使使用外部 svg2vectordrawable 脚本也无济于事。

        形状的大小和/或文档的页面大小不能在其宽度/高度中包含浮动数字,例如 14.134 或 3.5

        表示形状和页面的宽度和高度必须是整数

        【讨论】:

        • 是的,就是这样。谢谢,知道他们是否将其添加到最新版本 3.1.2 并且之前不存在?
        【解决方案7】:

        在尝试使用Vector Asset 工具导入 SVG 时对我有用的东西的编译(它们不是互斥的):

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

        【讨论】:

        • 对于来自flaticon.com 的 SVG,到目前为止似乎运行良好。已经按照本指南导入了 10 多个 SVG。
        【解决方案8】:

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

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

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

        【讨论】:

          【解决方案9】:

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

          【讨论】:

          • 嘿,感谢您的贡献 不幸的是,您的问题可能被归类为低工作量,尽管它在技术上可能是正确的。请尝试在您的答案中包含详细信息,例如逐步更改浮点符号的方法,以便将其用作正确答案
          【解决方案10】:

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

          即:

          viewBox="0, 0, 350,450"

          将其更改为:

          viewBox="0 0 350 450"

          允许 Android Studio 导入它

          【讨论】:

          • 这就是答案。请不要浪费时间花时间在其他答案上。使用 pngtosvg.com 将图像转换为 svg 并按照上述答案获取确切的 svg。
          【解决方案11】:

          我有类似的问题。我使用的是 Illustrator 2015。问题原来是我的插画项目中有多个画板,当保存为 svg 文件时我必须选择一个特定的画板(为什么这样做?不知道)。 通过只有一个包含设计的画板解决我想保存为 svg。

          1. 确保您的插画设计只有一个画板,其中包含
            您想在 android studio 中用作矢量资产的设计。

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

          3. 进入android studio,右键点击drawables,点击vector 资产并导入您新创建的 svg 文件。它将被保存为 drawables 中的 xml 文件。

          【讨论】:

            猜你喜欢
            • 2016-06-21
            • 2020-01-10
            • 1970-01-01
            • 1970-01-01
            • 2018-02-03
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多