我使用Vector Drawables。它在我的几个设备上运行良好,但在我的索尼与Android 5.0.2上,我得到了我的应用程序启动:
java.lang.ArrayIndexOutOfBoundsException: length=32; index=32
at android.util.PathParser$PathDataNode.addCommand(PathParser.java:370)
at android.util.PathParser$PathDataNode.nodesToPath(PathParser.java:260)
at android.graphics.drawable.VectorDrawable$VPath.toPath(VectorDrawable.java:1265)
at android.graphics.drawable.VectorDrawable$VPathRenderer.drawPath(VectorDrawable.java:950)
看起来我有一些svgs已转换为xml,并且该设备的标记不受支持。但是如何理解哪些以及如何确保它适用于所有其他受支持的设备。
答案 0 :(得分:36)
同样的问题http://code.google.com/p/android/issues/detail?id=78162(已关闭:2014年10月)问题是我的某个矢量xml中包含scientific notation。
因此,此时确保您的应用程序可以在所有设备上运行,请确保您的xml矢量drawable不包含 e -
答案 1 :(得分:3)
Android 5.0.1上可能会出现此错误 原因:存在科学格式(科学记数法)的矢量图像描述符编号,例如,8.8e-5
在项目中的矢量图像标记中查找以下条目
解决方案:在这种情况下,在没有参展商的情况下更改这些数字的决定将是结果,0.000088
答案 2 :(得分:1)
在我的xml中存在<group></group>
属性。
他们的删除问题解决后,也花了一些时间来了解问题所在,而且不是M和L字母(更多信息:https://developer.mozilla.org/en/docs/Web/SVG/Tutorial/Paths)
答案 3 :(得分:0)
我将svg传递给Android SVG to VectorDrawable后出现此错误。原来它生成的一些路径在第一个数字后面有字母“L”。删除它可以解决错误。
答案 4 :(得分:-2)