我有一个应用程序,每天有5000多个下载和500多个用户在运行,但不知从哪里开始,我在Crashlytics上出现了一个奇怪的错误:Caused by android.content.res.Resources$NotFoundException: File res/drawable-anydpi-v24/ic_tickets.xml from drawable resource ID #0x7f0700b3
at android.content.res.Resources.loadDrawableForCookie(Resources.java:2748)
at android.content.res.Resources.loadDrawable(Resources.java:2643)
at android.content.res.TypedArray.getDrawable(TypedArray.java:870)
at android.widget.TextView.(TextView.java:921)
at android.widget.TextView.(TextView.java:703)
at android.support.v7.widget.AppCompatTextView.(AppCompatTextView.java:76)
at android.support.v7.widget.AppCompatTextView.(AppCompatTextView.java:72)
at java.lang.reflect.Constructor.newInstance(Constructor.java)
Caused by android.content.res.Resources$NotFoundException: File res/drawable-anydpi-v24/$ic_tickets__0.xml from color state list resource ID #0x7f070017
at android.content.res.Resources.loadColorStateListForCookie(Resources.java:2858)
at android.content.res.Resources.loadColorStateList(Resources.java:2807)
at android.content.res.TypedArray.getColor(TypedArray.java:439)
at android.graphics.drawable.VectorDrawable$VFullPath.updateStateFromTypedArray(VectorDrawable.java:1605)
at android.graphics.drawable.VectorDrawable$VFullPath.inflate(VectorDrawable.java:1584)
at android.graphics.drawable.VectorDrawable.inflateInternal(VectorDrawable.java:666)
at android.graphics.drawable.VectorDrawable.inflate(VectorDrawable.java:571)
at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:1215)
at android.graphics.drawable.Drawable.createFromXml(Drawable.java:1124)
Caused by org.xmlpull.v1.XmlPullParserException: Binary XML file line #6: invalid color state list tag gradient
at android.content.res.ColorStateList.createFromXmlInner(ColorStateList.java:217)
at android.content.res.ColorStateList.createFromXml(ColorStateList.java:201)
at android.content.res.Resources.loadColorStateListForCookie(Resources.java:2854)
at android.content.res.Resources.loadColorStateList(Resources.java:2807)
at android.content.res.TypedArray.getColor(TypedArray.java:439)
at android.graphics.drawable.VectorDrawable$VFullPath.updateStateFromTypedArray(VectorDrawable.java:1605)
堆栈跟踪比这个长得多,在crashlytics上超过500行,我在这里粘贴了我认为可能有助于理解问题的内容。
如果我做对了,它就像是在抱怨我的一个资源丢失了或者被破坏了;那会是什么呢?
但是APK中的资源是完整的:
android:viewportWidth="512" android:width="24dp"
xmlns:aapt="http://schemas.android.com/aapt" xmlns:android="http://schemas.android.com/apk/res/android">
android:startX="256.00745"
android:startY="-0.0150070675" android:type="linear">
Drawable是应用程序中一个按钮的一个非常小和简单的图标,我从图标库下载了它,它打开并在我的所有测试中运行良好。
第二件奇怪的事是,我今天拥有的500多个活跃用户中,只有4个用户使用同一款智能手机:
Device
Brand: LGE
Model: LG K10 LTE
Orientation: Portrait
RAM free: 170.92 MB
Disk free: 574.64 MB
Operating System
Version: 6.0
Orientation: Portrait
Rooted: No
Crash
这款智能手机有什么问题吗?为了修复受影响的用户,我可以做什么?
最佳答案:
这是因为在api级别24之前,您使用了一些不受支持的属性。
例如startX、endX、startY、endY和offset。
android棉花糖是api级别的。
6.0来自23:
这个问题很可能不是invalid color state list tag gradient特定的,而是offset特定的。