为什么我的 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 文件导入 Adobe 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
/ height
或 viewBox
或 style
属性中找到)。喜欢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。
确保您的插画设计只有一个画板包含
您要在 android 工作室中用作矢量资产的设计。
在 Illustrator 文件中 -> 另存为 ->select 下拉列表中的 svg。保留全部
其他选项默认。
转到 android 工作室,右键单击可绘制对象并单击矢量
资产并导入您新创建的 svg 文件。它会被保存为
可绘制对象中的 xml 文件。
下面的 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 文件导入 Adobe 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
/height
或viewBox
或style
属性中找到)。喜欢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。
确保您的插画设计只有一个画板包含
您要在 android 工作室中用作矢量资产的设计。在 Illustrator 文件中 -> 另存为 ->select 下拉列表中的 svg。保留全部 其他选项默认。
转到 android 工作室,右键单击可绘制对象并单击矢量 资产并导入您新创建的 svg 文件。它会被保存为 可绘制对象中的 xml 文件。