web-dev-qa-db-fra.com

Fichier res/drawable/abc_ic_ab_back_material.xml à partir de l'ID de ressource pouvant être dessinée # 0x7f020016

Récemment, Android support library a été mis à jour pour 23.2.0. Après avoir téléchargé Android sdk et mis à jour la bibliothèque de support de conception Android dans 23.2.0, cette erreur se répète. Mon projet ne peut même pas être compilé. Le journal des erreurs complet indique:

03-02 12:00:04.945 9324-9324/com.creditease.zhiwang.debug E/AndroidRuntime: FATAL EXCEPTION: main
        Java.lang.RuntimeException: Unable to start activity ComponentInfo{com.creditease.zhiwang.debug/com.creditease.zhiwang.activity.TabContainerActivity}: Android.content.res.Resources$NotFoundException: File res/drawable/abc_ic_ab_back_material.xml from drawable resource ID #0x7f020016
        at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2309)
        at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2363)
        at Android.app.ActivityThread.access$700(ActivityThread.Java:169)
        at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1330)
        at Android.os.Handler.dispatchMessage(Handler.Java:99)
        at Android.os.Looper.loop(Looper.Java:137)
        at Android.app.ActivityThread.main(ActivityThread.Java:5528)
        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:1209)
        at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:1025)
        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:2974)
        at Android.content.res.Resources.getDrawable(Resources.Java:1558)
        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.ToolbarWidgetWrapper.<init>(ToolbarWidgetWrapper.Java:184)
        at Android.support.v7.widget.ToolbarWidgetWrapper.<init>(ToolbarWidgetWrapper.Java:91)
        at Android.support.v7.app.ToolbarActionBar.<init>(ToolbarActionBar.Java:74)
        at Android.support.v7.app.AppCompatDelegateImplV7.setSupportActionBar(AppCompatDelegateImplV7.Java:210)
        at Android.support.v7.app.AppCompatActivity.setSupportActionBar(AppCompatActivity.Java:119)
        at com.creditease.zhiwang.activity.BaseActivity.initToolBar(BaseActivity.Java:300)
        at com.creditease.zhiwang.activity.BaseActivity.initToolBar(BaseActivity.Java:265)
        at com.creditease.zhiwang.activity.TabContainerActivity.onCreate(TabContainerActivity.Java:107)
        at Android.app.Activity.performCreate(Activity.Java:5372)
        at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1104)
        at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2271)
        at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2363) 
        at Android.app.ActivityThread.access$700(ActivityThread.Java:169) 
        at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1330) 
        at Android.os.Handler.dispatchMessage(Handler.Java:99) 
        at Android.os.Looper.loop(Looper.Java:137) 
        at Android.app.ActivityThread.main(ActivityThread.Java:5528) 
        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:1209) 
        at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:1025) 
        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:933)
        at Android.graphics.drawable.Drawable.createFromXml(Drawable.Java:873)
        at Android.content.res.Resources.loadDrawable(Resources.Java:2970)
        at Android.content.res.Resources.getDrawable(Resources.Java:1558) 
        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.ToolbarWidgetWrapper.<init>(ToolbarWidgetWrapper.Java:184) 
        at Android.support.v7.widget.ToolbarWidgetWrapper.<init>(ToolbarWidgetWrapper.Java:91) 
        at Android.support.v7.app.ToolbarActionBar.<init>(ToolbarActionBar.Java:74) 
        at Android.support.v7.app.AppCompatDelegateImplV7.setSupportActionBar(AppCompatDelegateImplV7.Java:210) 
        at Android.support.v7.app.AppCompatActivity.setSupportActionBar(AppCompatActivity.Java:119) 
        at com.creditease.zhiwang.activity.BaseActivity.initToolBar(BaseActivity.Java:300) 
        at com.creditease.zhiwang.activity.BaseActivity.initToolBar(BaseActivity.Java:265) 
        at com.creditease.zhiwang.activity.TabContainerActivity.onCreate(TabContainerActivity.Java:107) 
        at Android.app.Activity.performCreate(Activity.Java:5372) 
        at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1104) 
        at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2271) 
        at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2363) 
        at Android.app.ActivityThread.access$700(ActivityThread.Java:169) 
        at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1330) 
        at Android.os.Handler.dispatchMessage(Handler.Java:99) 
        at Android.os.Looper.loop(Looper.Java:137) 
        at Android.app.ActivityThread.main(ActivityThread.Java:5528) 
        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:1209) 
        at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:1025) 
        at dalvik.system.NativeStart.main(Native Method)

Cette erreur a été générée par setSupportActionBar(toolbar); alors qu'elle ne s'est pas produite à 23.0.1 de Android design library 23.2.0. En attendant, selon ce journal, j’imaginais que ce dessin était supprimé depuis le Android design library 23.2.0.

Alors, quelqu'un pourrait-il me dire pourquoi cela se produit-il?

24
SilentKnight

Je pense que vous devez apporter des modifications à votre gradle.

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

Vous noterez que ce nouvel attribut n'existe que dans la version 2.0 de Gradle Plugin. Si vous utilisez Gradle 1.5, vous utiliserez plutôt

// Gradle Plugin 1.5  
 Android {  
   defaultConfig {  
     // Stops the Gradle plugin's automatic rasterization of vectors
     generatedDensities = []  
  }  
  // Flag to tell aapt to keep the attribute ids around
  // This is handled for you by the 2.0+ Gradle Plugin  
  aaptOptions {  
    additionalParameters "--no-version-vectors"  
  }  
 }  

J'ai trouvé une question similaire ici .

Voir Support Vector Drawables et Animation Vector Drawables dans la mise à jour de la bibliothèque de support Android . J'espère que cela vous aidera.

42
pRaNaY

Je résous ce problème en mettant à jour ma bibliothèque de support depuis 

'com.Android.support:appcompat-v7:23.2.0'
'com.Android.support:design:23.2.0' 

aux mêmes dépendances de 23.2.1.

Quand j'ai rencontré le problème, je n'avais apporté aucune modification à mon module construit par Android Studio. 

J'étais tellement confus que j'ai essayé de mettre à jour la bibliothèque de support d'Android . Après la mise à jour, n'oubliez pas de mettre à jour votre build.gradle.

6
Sylvester

J'ai résolu le problème comme suit: Essayez de modifier styles.xml en 

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>

En effet, si le style nécessite ActionBar, il y a des chances que le bouton abc_back ne soit pas détecté mais le problème est résolu

5
Subham Gupta

Source - http://Android-developers.blogspot.in/2016/02/Android-support-library-232.html

lorsque vous utilisez AppCompat avec ImageView (ou des sous-classes telles que ImageButton et FloatingActionButton), vous pourrez utiliser la nouvelle application: srcCompat attribut à la référence des vecteurs dessinables (ainsi que de tout autre dessinable disponible pour Android: src):

<ImageView  
  Android:layout_width="wrap_content"  
  Android:layout_height="wrap_content"  
  app:srcCompat="@drawable/ic_add" />  

où vous pouvez définir votre app dans votre élément racine en tant que 

(xmlns: app = "http://schemas.Android.com/apk/res-auto"} _

1
Rahul Chaurasia

J'ai eu ce problème parce que mon fichier Manifest avait un style défini uniquement dans le style v21. Vous ne savez pas pourquoi cela indique ce type d'erreur, mais cela peut être utile pour quelqu'un.

0
Bartando