Pertanyaan XmlPullParserException: vektor tag ditarik yang tidak valid


Saya menggunakan dukungan NDK dan mendapatkan kesalahan ini:

Gradle:

Distribusi: gradle-2.5-all

Alat Bangun: 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>

PERINGATAN:

vektor membutuhkan API level 21 (min saat ini adalah 13) atau membangun dengan   Plugin Android Gradle 1.4 atau lebih tinggi

Pengecualian:

  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)

13
2017-12-29 15:21


asal


Jawaban:


Pada perangkat pra-Lollipop, Anda perlu menggunakan VectorDrawableCompat untuk mendapatkan vektor dari sumber daya.

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

Kemudian Anda dapat mengatur latar belakang ImageView Anda.


17
2018-04-12 20:37



Saya menemukan solusi yang agak menarik untuk ini. Jika Anda mengatur latar belakang ke file drawable yang berisi xml drawable, maka exception / crash akan hilang.

Jadi buat file yang dapat digambar yang memiliki hal berikut:

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

dan cantumkan nama file yang dapat digambar ini sebagai latar belakang ...


2
2017-10-01 04:36



Jika tidak berfungsi hanya untuk Pra-Lollipop, tambahkan ini di Aktivitas Anda

static {
    AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}

0
2017-11-19 20:59