Android Destek Kitaplığını 23.2.0'a güncelleyin hataya neden: XmlPullParserException İkili XML dosya satırı # 17 <vector> etiketi, viewportWidth> 0 gerektirir


87

Destek Kitaplığımı 23.2.0'a kadar güncellemeye çalışıyorum ve şu hatayla karşılaşıyorum:

Exception while inflating <vector>
org.xmlpull.v1.XmlPullParserException: Binary XML file line #17<vector> tag requires viewportWidth > 0
at android.support.graphics.drawable.VectorDrawableCompat.updateStateFromTypedArray(VectorDrawableCompat.java:535)
at android.support.graphics.drawable.VectorDrawableCompat.inflate(VectorDrawableCompat.java:472)
at android.support.graphics.drawable.VectorDrawableCompat.createFromXmlInner(VectorDrawableCompat.java:436)
at android.support.v7.widget.AppCompatDrawableManager$VdcInflateDelegate.createFromXmlInner(AppCompatDrawableManager.java:829)
at android.support.v7.widget.AppCompatDrawableManager.loadDrawableFromDelegates(AppCompatDrawableManager.java:303)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:178)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:173)
at android.support.v7.widget.TintTypedArray.getDrawable(TintTypedArray.java:60)
at android.support.v7.widget.Toolbar.<init>(Toolbar.java:254)
at android.support.v7.widget.Toolbar.<init>(Toolbar.java:196)
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
at android.view.LayoutInflater.createView(LayoutInflater.java:594)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:267)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:129)
at com.chotot.vn.v2.activities.MainActivity.onCreate(MainActivity.java:121)
at android.app.Activity.performCreate(Activity.java:5133)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)

Ve

FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.chotot.vn.dev/com.chotot.vn.v2.activities.MainActivity}: android.view.InflateException: Binary XML file line #13: Error inflating class android.support.v7.widget.Toolbar
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.view.InflateException: Binary XML file line #13: Error inflating class android.support.v7.widget.Toolbar
at android.view.LayoutInflater.createView(LayoutInflater.java:620)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:267)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:129)
at com.chotot.vn.v2.activities.MainActivity.onCreate(MainActivity.java:121)
at android.app.Activity.performCreate(Activity.java:5133)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
at android.view.LayoutInflater.createView(LayoutInflater.java:594)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:267)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:129)
at com.chotot.vn.v2.activities.MainActivity.onCreate(MainActivity.java:121)
at android.app.Activity.performCreate(Activity.java:5133)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.content.res.Resources$NotFoundException: File res/drawable/abc_ic_ab_back_material.xml from drawable resource ID #0x7f020016
at android.content.res.Resources.loadDrawable(Resources.java:2091)
at android.content.res.Resources.getDrawable(Resources.java:695)
at android.support.v7.widget.TintResources.superGetDrawable(TintResources.java:48)
at android.support.v7.widget.AppCompatDrawableManager.onDrawableLoadedFromResources(AppCompatDrawableManager.java:374)
at android.support.v7.widget.TintResources.getDrawable(TintResources.java:44)
at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:323)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:180)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:173)
at android.support.v7.widget.TintTypedArray.getDrawable(TintTypedArray.java:60)
at android.support.v7.widget.Toolbar.<init>(Toolbar.java:254)
at android.support.v7.widget.Toolbar.<init>(Toolbar.java:196)
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
at android.view.LayoutInflater.createView(LayoutInflater.java:594)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:267)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:129)
at com.chotot.vn.v2.activities.MainActivity.onCreate(MainActivity.java:121)
at android.app.Activity.performCreate(Activity.java:5133)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #17: invalid drawable tag vector
at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:897)
at android.graphics.drawable.Drawable.createFromXml(Drawable.java:837)
at android.content.res.Resources.loadDrawable(Resources.java:2087)
at android.content.res.Resources.getDrawable(Resources.java:695)
at android.support.v7.widget.TintResources.superGetDrawable(TintResources.java:48)
at android.support.v7.widget.AppCompatDrawableManager.onDrawableLoadedFromResources(AppCompatDrawableManager.java:374)
at android.support.v7.widget.TintResources.getDrawable(TintResources.java:44)
at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:323)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:180)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:173)
at android.support.v7.widget.TintTypedArray.getDrawable(TintTypedArray.java:60)
at android.support.v7.widget.Toolbar.<init>(Toolbar.java:254)
at android.support.v7.widget.Toolbar.<init>(Toolbar.java:196)
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
at android.view.LayoutInflater.createView(LayoutInflater.java:594)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:267)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:129)
at com.chotot.vn.v2.activities.MainActivity.onCreate(MainActivity.java:121)
at android.app.Activity.performCreate(Activity.java:5133)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)

Benim activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <fragment
        android:id="@+id/f_actionbar"
        android:name="com.chotot.vn.fragments.ActionBarFragment"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

    <android.support.v7.widget.Toolbar
        android:id="@+id/main_tool_bar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:layout_alignParentTop="true"
        android:background="@color/action_bar_bg">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <include
                android:id="@+id/main_action_bar_layout"
                layout="@layout/layout_actionbar_custom_search"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:layout_gravity="top" />

            <LinearLayout
                android:id="@+id/main_action_bar_layout_content"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@id/main_action_bar_layout"
                android:orientation="vertical" />
        </RelativeLayout>
    </android.support.v7.widget.Toolbar>

    <FrameLayout
        android:id="@+id/layout_content"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/main_tool_bar" />

</RelativeLayout>

Nasıl düzeltebilirim?



30
Android geliştirmeden & ** & # $ bir bütün olarak vazgeçmeye başlıyorum! Önceki sürümde ortaya çıkardıkları hatayı düzeltmek için yeni bir SDK sürümüne yükseltme yapan bir kişi olarak hayatımın çoğunu boşa harcadığıma inanamıyorum ve şimdi bu! ARRGGGGHHH!
Neon Warge

1
API v23.1.0: P
Neon Warge

4
Aynı sorunu yaşıyorsanız 24.0.0, birisinin bu konuda ipuçları varsa, lütfen paylaşın, gerçekten her şeyi denedim.
wviana

1
@NeonWarge ... Bir kaç kez bloğun etrafında bulundum. Bu cevaplar benim için hiçbir şey yapmıyor. Acı hissetmeye
Jan Jansz

Yanıtlar:


55

Bu kodu build.gradle dosyanızda kullanın

    //for Gradle Plugin 2.0+  
 android {  
   defaultConfig {  
     vectorDrawables.useSupportLibrary = true  
    }  
 }

Gradle 1.5 kullanıyorsanız, bunun yerine kullanacaksınız

defaultConfig {
        generatedDensities = []
    }

    // This is handled for you by the 2.0+ Gradle Plugin
    aaptOptions {
        additionalParameters "--no-version-vectors"
    }

Sanırım başka kütüphanelerde altında vektör çizilebilir kompakt kullanıyorlar. Burada bulabilirsiniz.


7
@ MAY3AM Üzgünüm Eclipse üzerinde denenmedi. Düşünce tutulması modası geçmiş, neden kullanıyorsun.
Ajinkya

6
Sonunda sorunumu çözen, @ wonglik'in cevabı oldu: buildToolsVersion "23.0.2".
Sid

1
Vektör çizimlerini 21'den az cihazda kullanmak için xml'de android: src yerine app: srcCompat kullanmayı unutmayın.
Timo

1
bu benim için çalışmıyor. yapılandırmam aşağıdaki gibidir: buildToolsVersion "23.0.2"; sınıf yolu 'com.android.tools.build:gradle:2.0.0-beta6'; defaultConfig {vectorDrawables.useSupportLibrary = true}
Allen Vork

6
Bu çözüm benim için çalışmıyor. Could not find property 'vectorDrawables' on ProductFlavor_Decorated
Mulgard

28

23.4.0'a da yükseltebilirsiniz

dependencies {
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.android.support:design:23.4.0'
}

ve bu işlevi manuel olarak etkinleştirmek için bir bayrak kullanın:

static
{
    AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}

vektörleri kullanan aktivitenin içinde.

Kaynak: Vektörlerin yaşı


Bazı temel etkinliklerin içindeki statik çağrı, vectorDrawables.useSupportLibrary = true ile mücadele eden tüm geliştiriciler için sorunu çözecektir, yani bu yanıt için +1.
Stoycho Andreev

Oh, ♫ bu bir çeşit sihir ♫. Ben kullanıyorum com.android.support:appcompat-v7:25.3.1API 19. Standart config app çalışıyor vectorDrawables.useSupportLibrary = trueama bir vektör ile ImageSwitcher çekilebilir ayarlarken o çöküyordu. Son olarak, bu statik deyimle, ImageResource'u vektör drawable ile ayarlayabiliyorum. Görünüşe göre Android SDK hem şaşırtıcı hem de olgunlaşmamış.
Junior Mayhé

26

Lütfen appcompat gradle ( compile "com.android.support:appcompat-v7:23.2.0") 'ı kaldırın ve destek tasarımıyla ( compile 'com.android.support:design:23.1.1') değiştirin, bu sorunu çözecektir


Bu değişiklikler 23.1.1 defaultConfig ile de yapılacak mı {madeDensities = []} // Bu, sizin için 2.0+ Gradle Plugin aaptOptions {additionalParameters "--no-version-Vectors"} tarafından ele alınır
Ravi

20
ama ya en son appcompact kitaplığını kullanmak istiyorsanız ??
Ajinkya

23

Lolipop öncesi cihazlarda VectorDrawable'ı ImageView'dan başka bir yerde kullanmak için seçici oluşturmanız gerekir.

app:srcCompat="@drawable/your_vector_drawable"

Seçici:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/your_vector_drawable" />

</selector>

Daha sonra bu seçiciyi, örneğin TextView drawableLeft / drawableRight için xml olarak iletebilirsiniz.

<TextView
        android:gravity="center_vertical"
        android:drawableLeft="@drawable/selector_your_vector_drawable"
        android:drawableStart="@drawable/selector_your_vector_drawable"
        android:drawableRight="@drawable/selector_your_vector_drawable"
        android:drawableEnd="@drawable/selector_your_vector_drawable"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/your_string" />

Build.gradle'daki sürümlerden bağımsız olarak, bu çözüm çalışacaktır
PsyGik

Uygulama build.gradle'da vectorDrawables.useSupportLibrary = true var ve compileSdkVersion 25 ve buildToolsVersion "25.0.0" ve bağımlılık kitaplıkları revizyonları 25.0.0 kullanıyorum, ancak useSupportLibrary'ye yardımcı olmadım, bu en iyi çözümdür, teşekkür ederim @ n1ck !!!
mr.boyfox

Bu çözüm destek kitaplığı 25.00 ve 24'te de bozulmaz, Android 4.2.2 tablette test ettim (google play'i desteklemiyor) ve bu çözümler cazibe gibi çalışıyor!
mr.boyfox

Bu, bugün itibariyle işe yarıyor [buildtools 25+] - android:drawablexml: s'deki öznitelikler için vektör çizimlerine gönderme yapan başka hiçbir şey çalışmıyor . Ya bu ya da programatik olarak arka plan çekilebilir ayarı. Wth!
Pär Nils Amsen 09

22

ContextCompat.getDrawable yerine , sadece AppCompatDrawableManager.get (). GetDrawable kullanın .

Bu, 23'ten yüksek sürümlerde çalışmalıdır. +


1
Özel görünüm için vektörü kullanmaya çalışıyorum. Bu benim için çalışıyor. Ancak yalnızca doğrudan AppCompatDrawableManager.get().getDrawable(getContext(), R.drawable.drawable_xyz);kodla arayın . Xml tarafından bildirildiğinde nasıl çalıştığından emin değilim.
Robert

1
bu değişiklik kendi başına sorunu benim için çözdü. teşekkür ederim.
albert c braun

1
Bu sorun da çözüldü. Teşekkürler dostum !
rana

1
Ayrıca şunları kullanabilirsiniz:AppCompatResources.getDrawable(getContext(), R.drawable.drawable_xyz);
Warcello

19

Kullanarak:

compileSdkVersion 24
buildToolsVersion '24.0.1'

Çizgiyi kaldırana kadar çalışma zamanında düştüm

  defaultConfig {
    vectorDrawables.useSupportLibrary = true
  }

benim uygulama guild.gradle'dan

Bu, SDK'nın yeni sürümünü karıştırıyor gibi görünüyor

Umarım bu başka birinin baş ağrısını kurtarır


Bu bana yardımcı oluyor.
Sergey Shustikov

1
EctorDrawables.useSupportLibrary'nin kaldırılması 4.4.2 aygıtımdaki çökmeleri durdurdu.
Acapulco

Vay canına, gerçekten işe yarıyor! Ama neden can sıkıcı bir tüy bırakma hatası var app:srcCompat To use VectorDrawableCompat, you need to set android.defaultConfig.vectorDrawable.useSupportLibrary = true.? Bu çok kafa karıştırıcı!
HendraWD

12

Değiştirerek bu sorunu çözdüm

dependencies {

compile 'com.android.support:appcompat-v7:23.2.0'

compile 'com.android.support:design:23.2.0'
}

ile

dependencies {
compile 'com.android.support:appcompat-v7:23.0.1'

compile 'com.android.support:design:23.0.1'
}

10

Yukarıdaki çözümlerden birkaçının bir karışımı benim için çalıştı. İşte yaptığım şey -

İçinde 1.5.0 için 1.3.0 den gradle sürümünü değiştirin build.gradleait proje böyle

classpath 'com.android.tools.build:gradle:1.5.0'

Şeylerin altına Güncelleme build.gradleait app

buildToolsVersion "23.0.2"

23.2.0'dan 23.4.0'a güncellenen Modül bağımlılıkları:

compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.android.support:design:23.4.0'
compile 'com.android.support:support-vector-drawable:23.4.0'
compile 'com.android.support:animated-vector-drawable:23.4.0'

Şimdi, kullandığınız gradle sürümüne bağlı olarak, aşağıdaki iki parçacığı kullanın. Gradle 1.5.0 kullandığım için bunu kullandım -

defaultConfig {
            generatedDensities = []
            }

    aaptOptions {
        additionalParameters "--no-version-vectors"
        }

Ancak Gradle 2.1.0 kullanıyorsanız, bunun yerine bunu kullanın

       defaultConfig {  
         vectorDrawables.useSupportLibrary = true  
         }

Ve sonra gitmekte fayda var. Hem xml'de hem de programlı olarak test ettim. Xml dosyasında, bunu ImageView'umda kullandım -

app:srcCompat="@drawable/anim_droid"
// where droid_anim is an animated-vector file containing set of animations to animate different paths of the SVG file

Bunu programlı olarak yapmak için bunu kullandım -

    imageView.setImageResource(R.drawable.anim_droid);
    Drawable drawable = imageView.getDrawable();
    if (drawable instanceof Animatable) {
      ((Animatable) drawable).start();
    }

Umarım yardımcı olur! Şerefe :)


9

Aynı sorunu yaşadım. Aslında benim için derleme Araçları sürümünü yükseltmek yardımcı oldu:

buildToolsVersion "23.0.2"

9

23.2.0'a güncellerken api 19'da kilitlenme sorunuyla yüzleşin. Bu sorunu 23.2.1 sürümüne güncelleyerek çözdüm. (Bu soruyu cevaplarken en son sürüm. En son sürüme güncellemeyi deneyin, belki google sorunu çözmüştür)

compile 'com.android.support:appcompat-v7:23.2.1'
compile 'com.android.support:support:23.2.1'.

1
Neden bütünü derlemeniz gerekiyor 'com.android.support:support:23.2.1'?
IgorGanapolsky

Şu an için en son derleme 'com.android.support:support-v4:23.3.0' compile 'com.android.support:appcompat-v7:23.3.0' compile 'com.android.support:design:23.3.0 '
Alexandr

7

En son sürümü kullandığınızdan emin olun buildToolsVersion sürümü de (Gerekirse SDK yöneticisinden indirin).

Örnek Gradle:

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.0"
    defaultConfig {
        ...
        vectorDrawables.useSupportLibrary = true
    }
    dependencies {
        ...
        compile 'com.android.support:appcompat-v7:24.0.0'
        ...
    }
}

3
buildToolsVersion "24.0.0" günümü kurtar :)
NullPointer

Bu, sdk 24'ü derlemek için güncelleme yapmaya çalışan, ancak 4.x cihazlarında hala hata alan kişi için doğru cevaptır.
fillobotto

4

Gradle'da (gradle: 2.1.0):

defaultConfig {
    vectorDrawables.useSupportLibrary = true
}

Düzende:

<ImageView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:srcCompat="@drawable/you_vector_drawable"/>

3

Bu sorunu yaşadım, ancak sürümleri derlemek için güncelleme: sınıf:

classpath 'com.android.tools.build:gradle:1.5.0'

Ve:

buildToolsVersion "23.0.2"

Başarılı!



2

Uygulamamın yeni bir sürümünü oluşturduğumda aynı sorun beni şaşırttı. Appcompact'a olan bağımlılığım otomatik olarak güncellenecek şekilde ayarlandı.

compile 'com.android.support:appcompat-v7:23+'

Dolayısıyla, yeni bir sürüm çıkar çıkmaz (bu durumda sürüm 23.2.0), oluşturduğunuz eski sürümün yerini alacaktır.

Yani appcompat kitaplığının önceki sürümüne geri dönebilirsiniz (Hızlı düzeltme):

compile 'com.android.support:appcompat-v7:23.1.1'

Veya mevcut kitaplık sürümünü saklayın ve Google tarafından 23.2.0 sürüm notunda açıklanan şekilde Ajinkya'nın yanıtını kullanın . Daha sonrasını seçerseniz, gradle oluşturma aracınızı 1.5.0 sürümüne güncellemeyi unutmayın veya aşağıdaki gibi yeni parametreleri kullanamazsınız :generatedDensities

classpath 'com.android.tools.build:gradle:1.5.0'

2

Aynı sorunla karşı karşıya kalan bu çözüm sorunu çözdü.

Sınıfında sadece yap

public class YourClass extends xxx {
    static {
        AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
    }
    ...
}

ve henüz değilse bunu gradle dosyanıza ekleyin.

defaultConfig {
    vectorDrawables.useSupportLibrary = true
}

1

Ayarlayarak düzelttim ..

compile 'com.android.support:appcompat-v7:24.1.1'
compile 'com.android.support:design:24.1.1' and buildToolsVersion '24.0.0'

Bunu denedim ama benim için işe yaramadı ... Android-IDE kullanılıyor
Karyuu Ouji

1

Ben de bu problemle karşılaştım, ne yaptım

compileSdkVersion 24
buildToolsVersion "22.0.1"

-e

compileSdkVersion 24
buildToolsVersion "24.0.1"

1

Build.gradle'a ekleyin (Modül: app):

android {  
  defaultConfig {  
    vectorDrawables.useSupportLibrary = true  
  }  
}

dependencies {
    implementation 'com.android.support:appcompat-v7:26.1.0'
}

Ardından, AppActivity'de aşağıdaki kodu kullanın:

 AppCompatResources.getDrawable(getContext(), R.drawable.ic_your);

Mümkün olduğunda kullanım uygulaması: srcCompat yerine android: src ve android: Arka plan , içinde XML kaynak dosyası


0

Bu sorunu yaşadım, ancak aşağıdaki sürümlere güncelleme benim için sorunu çözdü:

classpath 'com.android.tools.build:gradle:1.5.0'

Ve:

buildToolsVersion "23.0.2"

Modül bağımlılıkları:

compile 'com.android.support:appcompat-v7:23.2.0'
compile 'com.android.support:support-v4:23.2.0'

compile 'com.google.android.gms:play-services:8.4.0'

0

Değiştirerek sorunu çözdüm

compile 'com.android.support:appcompat-v7:23.2.0'
compile 'com.android.support:support-v4:23.2.0'

ile

compile 'com.android.support:appcompat-v7:23.0.2'
compile 'com.android.support:support-v4:23.0.2'

0

Gradle bağımlılıklarımı en son sürümlere güncelledikten sonra Android Studio 2.2'de aynı hatayı aldım, ancak projemin buildToolsVersion'unu güncellemeyi unuttum.

Ben değiştim:

compile 'com.android.support:appcompat-v7:22.2.1'

to:

compile 'com.android.support:appcompat-v7:24.2.1'

BuildToolsVersion bu şekilde kalırken "22.0.1":

buildToolsVersion "22.0.1"

Yaptığım tek şey, buildToolsVersion'ı şu şekilde 24'e güncellemekti:

buildToolsVersion "24"

daha önce SDK Manager ile indirildiğinden. Bu nedenle buildToolsVersion, SDK Yöneticisinin en son sürümünü kontrol edin ve bağımlılıklar sürümüyle eşleşip eşleşmediğine bakın.

Umarım bu birine yardımcı olur.


0

Benim için işe yarayan şey ... xml vektör çizilebilirimin ad alanı bildirimindeki "https" den "s" yi kaldırmaktı.

Bu XML, Google Android belgelerinin kendisinden geldi.Ekran görüntüsünde xmlns'nin 'http' olduğunu ancak aşağıdaki kopyalanabilir sürümde 'https' olduğunu görebilirsiniz.

Bu, Vektör Varlığı görüntüleyicisindeki işleme hatalarını durduracak, ancak anlamadığım nedenlerden dolayı hala hiçbir şey görmeyeceksiniz. İngiliz anahtarı gibi görünmesi gerekiyordu.

Drawables klasörünü ve "New -> Vector Asset" öğesini sağ tıklarsanız, çalışan bir android simgesi öğesi elde edersiniz.

<vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:width="24dp"
        android:height="24dp"
        android:viewportWidth="24.0"
        android:viewportHeight="24.0">
    <path
        android:fillColor="#FF000000"
        android:pathData="M6,18c0,0.55 0.45,1 1,1h1v3.5c0,0.83 0.67,1.5 1.5,1.5s1.5,-0.67 1.5,-1.5L11,19h2v3.5c0,0.83 0.67,1.5 1.5,1.5s1.5,-0.67 1.5,-1.5L16,19h1c0.55,0 1,-0.45 1,-1L18,8L6,8v10zM3.5,8C2.67,8 2,8.67 2,9.5v7c0,0.83 0.67,1.5 1.5,1.5S5,17.33 5,16.5v-7C5,8.67 4.33,8 3.5,8zM20.5,8c-0.83,0 -1.5,0.67 -1.5,1.5v7c0,0.83 0.67,1.5 1.5,1.5s1.5,-0.67 1.5,-1.5v-7c0,-0.83 -0.67,-1.5 -1.5,-1.5zM15.53,2.16l1.3,-1.3c0.2,-0.2 0.2,-0.51 0,-0.71 -0.2,-0.2 -0.51,-0.2 -0.71,0l-1.48,1.48C13.85,1.23 12.95,1 12,1c-0.96,0 -1.86,0.23 -2.66,0.63L7.85,0.15c-0.2,-0.2 -0.51,-0.2 -0.71,0 -0.2,0.2 -0.2,0.51 0,0.71l1.31,1.31C6.97,3.26 6,5.01 6,7h12c0,-1.99 -0.97,-3.75 -2.47,-4.84zM10,5L9,5L9,4h1v1zM15,5h-1L14,4h1v1z"/>

Hem tasarımım hem de appcompat-v7'm 23.2.1 ve buildToolsVersion 23.0.2 kullanıyor.

Bu sadece geldi. 'Malzeme simgeleri' arayüz dosyası -> yeni -> vektör varlığı -> malzeme simgesi (daha sonra simgeye tıklayın ve İngiliz anahtarını seçin) tarafından oluşturulan anahtar:

<vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:width="24dp"
        android:height="24dp"
        android:viewportWidth="24.0"
        android:viewportHeight="24.0">
    <path
        android:fillColor="#FF000000"
        android:pathData="M22.7,19l-9.1,-9.1c0.9,-2.3 0.4,-5 -1.5,-6.9 -2,-2 -5,-2.4 -7.4,-1.3L9,6 6,9 1.6,4.7C0.4,7.1 0.9,10.1 2.9,12.1c1.9,1.9 4.6,2.4 6.9,1.5l9.1,9.1c0.4,0.4 1,0.4 1.4,0l2.3,-2.3c0.5,-0.4 0.5,-1.1 0.1,-1.4z"/>
</vector>

Bu çevrimiçi yardımcı program benim için iyi oldu. Chrome kullanın. SVG'yi android vektör çekmecelerine dönüştürür.


0

sorun şuydu:

/VdcInflateDelegate: Exception while inflating <vector>

çözüm:

değişti compileSdkVersion 23 buildToolsVersion "23.0.2" etmekcompileSdkVersion 24 buildToolsVersion "24.0.2"

çözüm kodu:

compileSdkVersion 24
buildToolsVersion '24.0.1'

yukarıdaki kodu kullanarak sorunu çözdüm


0

Build.gradle dosyanıza aşağıdaki bağımlılığı eklemeniz yeterlidir. bu sorununuzu çözecektir. kullanıyorum25.0.2 buildToolsVersion .

'com.android.support:support-vector-drawable:25.3.0' derleyin


0

FragmentActivity'yi AppCompatActivity olarak değiştirdim, sorun çözüldü. Benim ortamım:

compileSdkVersion = 25
buildToolsVersion = "25.0.0"
supportVersion = "25.2.0"

0

Benim durumumda bu çözüm işe yaradı:

Kullanım

android:theme="@style/TextLabelWhite"

tıpkı xml'nizdeki gibi. Stil ana stilini AppTheme stilinize değiştirin, örneğin:

<style name="TextLabelWhite" parent="AppTheme">

0

Gradle'ımda etkin vektör desteğine ve gradle'ın en son sürümüne, derleme araçlarına, destek kitaplığına ve Android stüdyosuna sahip olmama rağmen, hala hatayı alıyorum.

İşte benim durumum için bir düzeltme:

AppCompatDrawableManager.get().getDrawable(getContext(), R.drawable.drawable_xyz);

tüy bırakma uyarısını bastırmak için bunu ekleyin @SuppressLint("RestrictedApi")


0

kullanmayı deneyin: 'com.android.support:design:23.1.1' derleyin

yerine: "com.android.support:appcompat-v7:23.2.0" derleyin


0

Ayrıca Gözlemlenen üzerinde buildToolsVersion '26 .0.2'

Downgrading için buildToolsVersion '25 .0.3' çalıştı .

BuildToolsVersion '26 İçin .0.2' : Widget'lar Örnek için AppCompat deneyin TextView -> android.support.v7.widget.AppCompatTextView cihazdır Ayrıca alt uç cihazlarda gözlemlenen (eski Android Sürümü desteği için) drawables şişirmek için yapamaz nedeniyle belleğe (Çekilebilir, res-> çekilebilir dizinde bulunsa bile): Çekilebilir dosyanızı daha az karmaşık olanlarla değiştirmeyi deneyin .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.