转载请注明出处!
最近尝试用vector绘制图标,但是纯代码太麻烦and不想学。。
于是使用Inkscape绘制出svg图标并在android studio中导入vector asset。
出现错误:line XX: Gradient has no stop info。
搜到了相关解答:Gradient has no stop info error while importing SVG file in Android Studio
认为是Android studio无法解析引用xlink:href="#linearGradient6105"
中的停止信息(渐变的信息);于是将被引用值直接写到引用处解决。
- 右键svg文件以文本形式打开,找到报错行数上下文:
<defs
id="defs3721">
<linearGradient
id="linearGradient6105">
<stop
id="stop6101"
offset="0"
style="stop-color:#7dc0f3;stop-opacity:1;" />
<stop
id="stop6103"
offset="1"
style="stop-color:#7dc0f3;stop-opacity:0;" />
</linearGradient>
<linearGradient
osb:paint="solid"
id="linearGradient6020">
<stop
id="stop6018"
offset="0"
style="stop-color:#ffc2ea;stop-opacity:1;" />
</linearGradient>
<linearGradient
osb:paint="solid"
id="linearGradient6012">
<stop
id="stop6010"
offset="0"
style="stop-color:#ffc2ea;stop-opacity:1;" />
</linearGradient>
<linearGradient
gradientUnits="userSpaceOnUse"
y2="19.608416"
x2="91.915047"
y1="41.236385"
x1="64"
id="linearGradient6107"
xlink:href="#linearGradient6105" /> <!-- 报错行数 -->
</defs>
- 被引用的是定义为
"#linearGradient6105"
:
<linearGradient
id="linearGradient6105">
<stop
id="stop6101"
offset="0"
style="stop-color:#7dc0f3;stop-opacity:1;" />
<stop
id="stop6103"
offset="1"
style="stop-color:#7dc0f3;stop-opacity:0;" />
</linearGradient>
改写到引用处保存:
<defs
id="defs3721">
<linearGradient
osb:paint="solid"
id="linearGradient6020">
<stop
id="stop6018"
offset="0"
style="stop-color:#ffc2ea;stop-opacity:1;" />
</linearGradient>
<linearGradient
osb:paint="solid"
id="linearGradient6012">
<stop
id="stop6010"
offset="0"
style="stop-color:#ffc2ea;stop-opacity:1;" />
</linearGradient>
<linearGradient
gradientUnits="userSpaceOnUse"
y2="19.608416"
x2="91.915047"
y1="41.236385"
x1="64"
id="linearGradient6107" >
<stop
id="stop6101"
offset="0"
style="stop-color:#7dc0f3;stop-opacity:1;" />
<stop
id="stop6103"
offset="1"
style="stop-color:#7dc0f3;stop-opacity:0;" />
</linearGradient>
</defs>
- 大功告成!重新导入到Android Studio中,不再报错。