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?
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.
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
.
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
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"} _
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.