Android Vector Drawable崩溃

时间:2015-11-16 14:00:32

标签: android android-vectordrawable

我使用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,并且该设备的标记不受支持。但是如何理解哪些以及如何确保它适用于所有其他受支持的设备。

5 个答案:

答案 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>属性。

enter image description here

他们的删除问题解决后,也花了一些时间来了解问题所在,而且不是M和L字母(更多信息:https://developer.mozilla.org/en/docs/Web/SVG/Tutorial/Paths

答案 3 :(得分:0)

我将svg传递给Android SVG to VectorDrawable后出现此错误。原来它生成的一些路径在第一个数字后面有字母“L”。删除它可以解决错误。

答案 4 :(得分:-2)

在寻找解决方案时,我找到了一些解决方法,例如将操作系统语言切换为英语。

您可以在问题跟踪器herehere中阅读更多内容。