2015-12-29 7 views
13

Я использую поддержку NDK и получаю эту ошибку:XmlPullParserException: неверный рисуем вектор тег

Gradle:

Распределение: gradle-2.5-all

Сложение инструмент: gradle-experimental:0.2.1

XML:

<vector android:height="24dp" android:viewportHeight="125.0" 
android:viewportWidth="100.0" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> 
<path android:fillColor="#FF000000" android:pathData="M97.01,-2.98,-3C47.02,95.35"/> 
</vector> 

Предупреждение:

vector requires API level 21 (current min is 13) or building with Android Gradle plugin 1.4 or higher

Исключение:

FATAL EXCEPTION: main 
android.content.res.Resources$NotFoundException: File res/drawable/accelerometer.xml from drawable resource ID #0x7f020045 
at android.content.res.Resources.loadDrawable(Resources.java:2842) 
at android.content.res.Resources.getDrawable(Resources.java:1521) 

... 
Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #1: invalid drawable tag vector 
at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:917) 
at android.graphics.drawable.Drawable.createFromXml(Drawable.java:858) 
+0

https://github.com/wnafee/vector-compat/issues/15 –

+0

ты решил эту проблему? – bendaf

+1

@bendaf да. пожалуйста, проверьте принятый ответ. –

ответ

17

На предварительных Lollipop устройств, которые необходимо использовать VectorDrawableCompat, чтобы получить вектор из ресурсов.

someVectorDrawable = VectorDrawableCompat.create(context.getResources(), R.drawable.[some res id], null); 

Затем вы можете установить фон вашего ImageView.

+0

Я получаю эту ошибку с помощью buildToolsVersion «25.0.3» для api 19 при использовании drawableLeft на кнопке. Это обходное решение - единственный подход, который работал для меня. – Aleris

+0

Это спасло мой день! Единственное обходное решение. Я попытался использовать инструменты сборки 26.0.0, и у меня возникла такая же проблема. – AndroidRuntimeException

+0

Любая идея, как решить эту проблему при включении через xml для элемента меню ('android: icon = @ drawable/icon_name')? –

2

Я нашел довольно интересное обходное решение. Если вы установите фон в выпадающий файл, содержащий xml drawable, исключение/сбой исчезнет.

Так создать Drawable файл, который имеет следующий:

<selector 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
<item 
    android:drawable="@drawable/your_image_here.xml" /> 
</selector> 

и поставить имя этого файла вытяжки в качестве фона ...

0

Если он не работает только для предварительного леденца, добавьте это в вашей деятельности

static { 
    AppCompatDelegate.setCompatVectorFromResourcesEnabled(true); 
} 
Смежные вопросы