【问题标题】:Android Vector Drawable crashAndroid Vector Drawable 崩溃
【发布时间】:2016-02-17 15:48:07
【问题描述】:

我使用矢量绘图。它在我的几台设备上运行良好,但在我的带有 Android 5.0.2 的 Sony 上,我在应用程序启动时得到了:

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)

看起来我已将一些 svg 转换为 xml,但该设备的标签不受支持。但是如何了解哪些以及如何确保它可以在所有其他受支持的设备上运行。

【问题讨论】:

    标签: android android-vectordrawable


    【解决方案1】:

    同样的问题http://code.google.com/p/android/issues/detail?id=78162关闭:2014 年 10 月)问题是我的一个向量 xml 包含一个 scientific notation

    因此,此时要确保您的应用程序可以在所有设备上运行,请确保您的 xml 矢量可绘制对象不包含 e-

    【讨论】:

      【解决方案2】:

      Android 5.0.1 可能会出现此错误 原因:存在科学格式(科学记数法)的矢量图像描述符编号,例如8.8e-5

      在项目中的矢量图像标签中查找以下条目

      解决方案:在这种情况下,在没有参展商的情况下更改格式中的这些数字的决定将是结果,0.000088

      【讨论】:

      • 你拯救了我的一天
      【解决方案3】:

      在我的 xml 中存在 <group></group> 属性。

      他们的移除问题解决后,也花了一些时间了解问题出在哪里,不是M和L字母(阅读更多:https://developer.mozilla.org/en/docs/Web/SVG/Tutorial/Paths

      【讨论】:

        【解决方案4】:

        在通过Android SVG to VectorDrawable 传递我的svg 后出现此错误。原来它生成的一些路径在第一个数字之后有字母“L”。删除它可以纠正错误。

        【讨论】:

          【解决方案5】:

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

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

          【讨论】:

          • 您链接到的错误报告是针对 Android Studio 本身的。问题是关于应用程序在运行时崩溃的问题。