Ich habe über stackoverflow und keine Frage war in der Lage, mein Problem zu lösen.ungültiges Zeichen animierte-animierte-Vektor
Ich versuche, einen animierte Vektor ziehbar auf einem Gerät mit API 15 zu spielen, aber ich erhalte die folgende Laufzeitausnahme erhalten:
com.karim.test E/AvdcInflateDelegate: Exception while inflating <animated-vector>
android.content.res.Resources$NotFoundException: File res/drawable-ldpi-v4/feedback.png from xml type xml resource ID #0x7f020066
at android.content.res.Resources.loadXmlResourceParser(Resources.java:2152)
at android.content.res.Resources.loadXmlResourceParser(Resources.java:2107)
at android.content.res.Resources.getXml(Resources.java:906)
at android.support.graphics.drawable.VectorDrawableCompat.create(VectorDrawableCompat.java:408)
at android.support.graphics.drawable.AnimatedVectorDrawableCompat.inflate(AnimatedVectorDrawableCompat.java:356)
at android.support.graphics.drawable.AnimatedVectorDrawableCompat.createFromXmlInner(AnimatedVectorDrawableCompat.java:162)
at android.support.v7.widget.AppCompatDrawableManager$AvdcInflateDelegate.createFromXmlInner(AppCompatDrawableManager.java:905)
at android.support.v7.widget.AppCompatDrawableManager.loadDrawableFromDelegates(AppCompatDrawableManager.java:356)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:197)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:192)
at android.support.v7.widget.AppCompatImageHelper.setImageResource(AppCompatImageHelper.java:66)
at android.support.v7.widget.AppCompatImageView.setImageResource(AppCompatImageView.java:71)
at com.karim.test.MainActivity.initialize(MainActivity.java:428)
at com.karim.test.MainActivity.onCreate(MainActivity.java:210)
Caused by: java.io.FileNotFoundException: Corrupt XML binary file
at android.content.res.AssetManager.openXmlAssetNative(Native Method)
at android.content.res.AssetManager.openXmlBlockAsset(AssetManager.java:487)
at android.content.res.Resources.loadXmlResourceParser(Resources.java:2134)
at android.content.res.Resources.loadXmlResourceParser(Resources.java:2107)
at android.content.res.Resources.getXml(Resources.java:906)
at android.support.graphics.drawable.VectorDrawableCompat.create(VectorDrawableCompat.java:408)
at android.support.graphics.drawable.AnimatedVectorDrawableCompat.inflate(AnimatedVectorDrawableCompat.java:356)
at android.support.graphics.drawable.AnimatedVectorDrawableCompat.createFromXmlInner(AnimatedVectorDrawableCompat.java:162)
at android.support.v7.widget.AppCompatDrawableManager$AvdcInflateDelegate.createFromXmlInner(AppCompatDrawableManager.java:905)
at android.support.v7.widget.AppCompatDrawableManager.loadDrawableFromDelegates(AppCompatDrawableManager.java:356)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:197)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:192)
at android.support.v7.widget.AppCompatImageHelper.setImageResource(AppCompatImageHelper.java:66)
at android.support.v7.widget.AppCompatImageView.setImageResource(AppCompatImageView.java:71)
at com.karim.test.MainActivity.initialize(MainActivity.java:428)
at com.karim.test.MainActivity.onCreate(MainActivity.java:210)
android.content.res.Resources$NotFoundException: File res/drawable/animated_feedback_left.xml from drawable resource ID #0x7f020065
at android.content.res.Resources.loadDrawable(Resources.java:1923)
at android.content.res.Resources.getDrawable(Resources.java:664)
at android.support.v7.widget.ResourcesWrapper.getDrawable(ResourcesWrapper.java:128)
at android.support.v7.widget.TintResources.getDrawable(TintResources.java:45)
at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:323)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:201)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:191)
at android.support.v7.widget.AppCompatImageHelper.setImageResource(AppCompatImageHelper.java:66)
at android.support.v7.widget.AppCompatImageView.setImageResource(AppCompatImageView.java:71)
at com.karim.test.MainActivity.initialize(MainActivity.java:422)
at com.karim.test.MainActivity.onCreate(MainActivity.java:204)
Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #2: invalid drawable tag animated-vector
at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:863)
at android.graphics.drawable.Drawable.createFromXml(Drawable.java:804)
at android.content.res.Resources.loadDrawable(Resources.java:1920)
at android.content.res.Resources.getDrawable(Resources.java:664)
at android.support.v7.widget.ResourcesWrapper.getDrawable(ResourcesWrapper.java:128)
at android.support.v7.widget.TintResources.getDrawable(TintResources.java:45)
at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:323)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:201)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:191)
at android.support.v7.widget.AppCompatImageHelper.setImageResource(AppCompatImageHelper.java:66)
at android.support.v7.widget.AppCompatImageView.setImageResource(AppCompatImageView.java:71)
at com.karim.test.MainActivity.initialize(MainActivity.java:422)
at com.karim.test.MainActivity.onCreate(MainActivity.java:204)
ich die gleichen Ressourcen aus meiner vorherigen Frage, die Sie kann hier finden Animated Vector Drawable not working with API 15
Auch ich habe statt ImageView getestet, um AppCompatImageView aber immer noch den gleichen Fehler zu verwenden.
Ich habe das Debuggen dieser Fehler und es nicht auf die folgende Erklärung ab:
final XmlPullParser parser = res.getXml(resId);
innen:
public static VectorDrawableCompat create(@NonNull Resources res, @DrawableRes int resId, @Nullable Theme theme)
Methode von VectorDrawableCompat verion 23.3.0.
Es scheint, dass ich ein Problem mit der Kompatibilität habe. Irgendwann entscheidet sich Android, das XML-Parsing von API 15 anstelle der compat-Version zu verwenden. Irgendwelche Ideen, wie ich dieses lästige Problem lösen kann?
Update: Ich folgte Chris Banes Blog und immer noch kein Glück. Im Grunde habe ich die compat Bibliotheken 23.4.0 aktualisiert und ich verwendet, um die folgenden in meiner Tätigkeit:
static {
AppCompatDelegate.setCompatVectorFromSourcesEnabled(true);
}
Das Ding, das mir in deinem Fehler auffällt, ist "feedback.png". Das deutet darauf hin, dass Android Studio das VectorDrawable in ein .png umwandelt, das dann den Fehler verursacht (kann ein PNG nicht animieren!). In Ihrer vorherigen Frage hatten Sie die entsprechende Zeile in Ihrer Gradle-Datei, um diese Konvertierung zu stoppen (vectorDrawables.useSupportLibrary = true). stellen Sie sicher, dass es immer noch vorhanden ist und nicht versehentlich entfernt wurde. Versuchen Sie auch, Clean and Rebuild in Ihrem Projekt auszuführen, um automatisch generierte Dateien zu löschen. –
danke @LewisMcGeary für den Kommentar. Es funktionierte, nachdem ich meinen Kopf einen ganzen Tag lang geschlagen hatte und bevor ich aufgab. Also hatte ich alle meine Ressourcen in einem Modul, das mit der Haupt-App verbunden ist. Als ich die animationsbezogenen XMLs zurück in die Haupt-App verschoben habe, funktionierte das Laden gut und ich konnte die Animation abspielen. Ich versuche immer noch, Sinn zu machen, denn warum sollte es funktionieren, wenn ich die Ressourcen in der Haupt-App habe und nicht Teil eines Moduls bin. Werde ein Update veröffentlichen, sobald ich eine Antwort habe. –
Seltsam, aber zumindest funktioniert es! Ich habe Leute gesehen, die über Probleme berichten, die daraus resultieren, dass eine Ressource in ihrer App denselben Namen wie eine Ressource in einer Bibliothek hat. Nicht sicher, ob es verwandt ist, aber wenn du es ausarbeitest, teile es! –