webentwicklung-frage-antwort-db.com.de

Datei res/drawable/abc_ic_ab_back_material.xml von drawable resource ID # 0x7f020016

Vor kurzem wurde Android support library auf 23.2.0 aktualisiert. Nach dem Herunterladen von Android-SDK und der Aktualisierung der Android-Design-Support-Bibliothek in 23.2.0 tritt dieser Fehler wiederholt auf. Mein Projekt kann nicht einmal kompiliert werden. Das vollständige Fehlerprotokoll sagt:

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)

Dieser Fehler wurde von setSupportActionBar(toolbar); ausgelöst, während er bei 23.0.1 von Android design library 23.2.0 nicht aufgetreten ist. Nach diesem Protokoll habe ich vermutet, dass dieses Zeichen seit Android design library 23.2.0 entfernt wurde.

Könnte mir jemand sagen, warum das passiert?

24
SilentKnight

Ich denke, Sie müssen Änderungen an Ihrer gradle vornehmen.

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

Sie werden feststellen, dass dieses neue Attribut nur in der Version 2.0 des Gradle Plugins vorhanden ist. Wenn Sie Gradle 1.5 verwenden, verwenden Sie stattdessen

// 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"  
  }  
 }  

Ich habe eine ähnliche Frage hier gefunden.

Siehe Support Vector Drawables und Animated Vector Drawables in der Android Support Library-Aktualisierung .

42
pRaNaY

Wie in der Dokumentation der Google-Unterstützungsbibliothek für 24.0.0 beschrieben, haben sie die Vektor-Zeichnungsbibliothek in das, was sie zuvor war, geändert. AppCompatDelegate.setCompatVectorFromResourcesEnabled()-Methode hinzugefügt, um die Verwendung von Vektor-Zeichnungsobjekten in DrawableContainer-Objekten auf Geräten mit Android 4.4 (API-Ebene) wieder zu aktivieren 19) und niedriger. Siehe AppCompat v23.2 - Alter der Vektoren ! für mehr Informationen.

Ich war mit dem gleichen Problem konfrontiert und meine in meinem Projekt verwendeten SVG-Statelisten-Zeichensätze funktionierten gut bis zu den Marshmallow-Geräten. 

Später, als ich den Absturz für das gleiche in Android N bekam, wurde mir klar, dass die SVGs etwas beschädigt waren und Charaktere wie enthielten, was den Absturz verursachte.

Diese wurden jedoch in Android Marshmallow und früheren Geräten nicht berücksichtigt.

Stellen Sie sicher, dass Ihr Vektor-Zeichenelement keine dieser Zeichen enthält, da die Art der Analyse von der Bibliothek 24.0.0 geändert wurde. Vektor-Drawables funktionieren also gut, bis Marshmallow in Nougat-Geräten nicht funktioniert.

Hoffe das hilft :)

10

Ich löse dieses Problem durch Aktualisieren meiner Support-Bibliothek von 

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

zu den gleichen Abhängigkeiten von 23.2.1.

Als ich das Problem traf, hatte ich an meinem von Android Studio erstellten Modul keine Änderungen vorgenommen. 

Ich war also so verwirrt, dass ich versucht habe, die Android-Supportbibliothek zu aktualisieren .. Nach der Aktualisierung sollten Sie daran denken, Ihr build.gradle zu aktualisieren.

6
Sylvester

Ich habe das Problem wie folgt gelöst: Versuchen Sie, die Datei styles.xml zu ändern 

<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>

Dies liegt daran, dass, wenn für den Stil ActionBar erforderlich ist, die Schaltfläche abc_back möglicherweise nicht gefunden wird, jedoch kein Aktionsleistenproblem gelöst wird

5
Subham Gupta

Das funktionierte für mich: Ersetzen Sie die com.Android.support:design-Version in build.gradle durch eine funktionierende. Finden Sie heraus, welche Version funktioniert, indem Sie ein neues Projekt in Android Studio von Grund auf erstellen und die Version daraus verwenden.

Ich hatte dieses Problem, als ich eine Aktivität "Navigation Drawer Activity" aus dem Menü " File -> New -> Activity " zu einem älteren Projekt mit Android Studio hinzufügte.

Android Studio fügte eine Abhängigkeit wie folgt hinzu: compile 'com.Android.support:design:24.0.0-alpha1' (Ich bin mir nicht sicher, welche Version genau ist, aber es hatte '24' und 'alpha').

Ich habe dann ein neues Dummy-Projekt erstellt und im neuen Projektassistenten eine Aktivität für die Navigationsleiste angegeben. Ich habe festgestellt, dass das neue Projekt eine andere Abhängigkeit hatte: compile 'com.Android.support:design:23.2.1'

Also habe ich diese Abhängigkeit in das erste Projekt übernommen und das Problem gelöst.

2
user13097

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

wenn Sie AppCompat mit ImageView (oder Unterklassen wie ImageButton und FloatingActionButton) verwenden, können Sie die neue App verwenden: srcCompat Attribut für Referenz-Vektor-Zeichnungsobjekte (sowie für andere Zeichnungsobjekte, die für Android verfügbar sind: src):

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

wo können Sie app in Ihrem Wurzelelement definieren als 

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

1
Rahul Chaurasia

Ich hatte dieses Problem, weil meine Manifest-Datei einen Stil hatte, der nur im V21-Stil definiert wurde. Nicht sicher, warum es auf diese Art von Fehler hingewiesen hat, aber jemand könnte dies hilfreich finden.

0
Bartando