Подтвердить что ты не робот

Android-векторный срыв

Я использую векторные Drawables. Он работает хорошо на моих нескольких устройствах, но на моей Sony с 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 с неподдерживаемыми тегами для этого устройства. Но как понять, какие из них и как быть уверенными, что он будет работать на всех других поддерживаемых устройствах.

4b9b3361

Ответ 1

Те же проблемы http://code.google.com/p/android/issues/detail?id=78162 (Закрыто: октябрь 2014) Проблема заключалась в том, что один из моих векторных xml содержал a научная нотация.

Итак, в этот момент, чтобы убедиться, что приложение будет работать на всех устройствах, убедитесь, что ваши векторные векторные элементы 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

Я получил эту ошибку после передачи моего svg через Android SVG в VectorDrawable. Оказалось, что некоторые из путей, которые он сгенерировал, имели букву "L" сразу после первого числа. Удаление этого исправлено с ошибкой.

Ответ 5

Поиск решения Я нашел некоторые обходные пути, например, переключить язык ОС на английский.

Вы можете прочитать больше в трекере проблем здесь и здесь.