在 Android App Bundle 中添加 SwitchCompat 后,Resource Not Found 错误 res/drawable/abc_switch_thumb_material.xml

在 Android App Bundle 中添加 SwitchCompat 后,Resource Not Found 错误 res/drawable/abc_switch_thumb_material.xml

问题描述:

我知道这个问题已经被问过好几次了织物报告.这个错误不是发生在所有设备上,而是发生在一些设备上,崩溃报告也没有针对这次崩溃的特定 Android.还有一件事我正在使用 Android 的测试版,因为 Android App Bundle 并且这件事不会发生在 Apk 的非捆绑包中.

I Know this Question has been asked several times i have read them all and have matched all dependencies so that they have same versions but this error only started to happen after adding Switch Compat as you can also see that by going through the crash report by fabric . This Error is happing not on all devices but to some by the crash report , also it has no specific Android for this crash. One More thing i am using beta versions of android because of Android App Bundle and this thing does not happen in non bundles that is Apk.

Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.App/com.App}: android.view.InflateException: Binary XML file line #100: Error inflating class android.support.design.widget.NavigationView
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3190)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3300)
       at android.app.ActivityThread.access$1000(ActivityThread.java:211)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1705)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:145)
       at android.app.ActivityThread.main(ActivityThread.java:6946)
       at java.lang.reflect.Method.invoke(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:372)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)

Caused by android.view.InflateException: Binary XML file line #100: Error inflating class android.support.design.widget.NavigationView
       at android.view.LayoutInflater.createView(LayoutInflater.java:640)
       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:750)
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:813)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:511)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:415)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:366)
       at android.support.v7.app.l.b(Unknown Source)
       at android.support.v7.app.e.setContentView(Unknown Source)
       at com.App.onCreate(Unknown Source)
       at android.app.Activity.performCreate(Activity.java:6575)
       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1134)
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3143)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3300)
       at android.app.ActivityThread.access$1000(ActivityThread.java:211)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1705)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:145)
       at android.app.ActivityThread.main(ActivityThread.java:6946)
       at java.lang.reflect.Method.invoke(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:372)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)

Caused by java.lang.reflect.InvocationTargetException
       at java.lang.reflect.Constructor.newInstance(Constructor.java)
       at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
       at android.view.LayoutInflater.createView(LayoutInflater.java:614)
       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:750)
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:813)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:511)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:415)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:366)
       at android.support.v7.app.l.b(Unknown Source)
       at android.support.v7.app.e.setContentView(Unknown Source)
       at com.App.MainActivity.onCreate(Unknown Source)
       at android.app.Activity.performCreate(Activity.java:6575)
       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1134)
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3143)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3300)
       at android.app.ActivityThread.access$1000(ActivityThread.java:211)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1705)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:145)
       at android.app.ActivityThread.main(ActivityThread.java:6946)
       at java.lang.reflect.Method.invoke(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:372)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)

Caused by android.view.InflateException: Binary XML file line #3: Error inflating class android.support.v7.widget.SwitchCompat
       at android.view.LayoutInflater.createView(LayoutInflater.java:640)
       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:750)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:483)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:415)
       at android.support.v7.view.menu.j.a(Unknown Source)
       at android.support.v7.view.menu.j.setActionView(Unknown Source)
       at android.support.v7.view.g$b.a(Unknown Source)
       at android.support.v7.view.g$b.b(Unknown Source)
       at android.support.v7.view.g.a(Unknown Source)
       at android.support.v7.view.g.a(Unknown Source)
       at android.support.v7.view.g.inflate(Unknown Source)
       at android.support.design.widget.NavigationView.a(Unknown Source)
       at android.support.design.widget.NavigationView.<init>(Unknown Source)
       at android.support.design.widget.NavigationView.<init>(Unknown Source)
       at java.lang.reflect.Constructor.newInstance(Constructor.java)
       at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
       at android.view.LayoutInflater.createView(LayoutInflater.java:614)
       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:750)
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:813)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:511)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:415)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:366)
       at android.support.v7.app.l.b(Unknown Source)
       at android.support.v7.app.e.setContentView(Unknown Source)
       at com.App.MainActivity.onCreate(Unknown Source)
       at android.app.Activity.performCreate(Activity.java:6575)
       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1134)
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3143)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3300)
       at android.app.ActivityThread.access$1000(ActivityThread.java:211)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1705)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:145)
       at android.app.ActivityThread.main(ActivityThread.java:6946)
       at java.lang.reflect.Method.invoke(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:372)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)

Caused by java.lang.reflect.InvocationTargetException
       at java.lang.reflect.Constructor.newInstance(Constructor.java)
       at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
       at android.view.LayoutInflater.createView(LayoutInflater.java:614)
       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:750)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:483)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:415)
       at android.support.v7.view.menu.j.a(Unknown Source)
       at android.support.v7.view.menu.j.setActionView(Unknown Source)
       at android.support.v7.view.g$b.a(Unknown Source)
       at android.support.v7.view.g$b.b(Unknown Source)
       at android.support.v7.view.g.a(Unknown Source)
       at android.support.v7.view.g.a(Unknown Source)
       at android.support.v7.view.g.inflate(Unknown Source)
       at android.support.design.widget.NavigationView.a(Unknown Source)
       at android.support.design.widget.NavigationView.<init>(Unknown Source)
       at android.support.design.widget.NavigationView.<init>(Unknown Source)
       at java.lang.reflect.Constructor.newInstance(Constructor.java)
       at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
       at android.view.LayoutInflater.createView(LayoutInflater.java:614)
       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:750)
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:813)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:511)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:415)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:366)
       at android.support.v7.app.l.b(Unknown Source)
       at android.support.v7.app.e.setContentView(Unknown Source)
       at com.App.MainActivity.onCreate(Unknown Source)
       at android.app.Activity.performCreate(Activity.java:6575)
       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1134)
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3143)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3300)
       at android.app.ActivityThread.access$1000(ActivityThread.java:211)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1705)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:145)
       at android.app.ActivityThread.main(ActivityThread.java:6946)
       at java.lang.reflect.Method.invoke(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:372)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)

Caused by android.content.res.Resources$NotFoundException: File res/drawable/abc_switch_thumb_material.xml from drawable resource ID #0x7f080048
       at android.content.res.Resources.loadDrawableForCookie(Resources.java:3985)
       at android.content.res.Resources.loadDrawable(Resources.java:3853)
       at android.content.res.Resources.getDrawable(Resources.java:1949)
       at android.content.Context.getDrawable(Context.java:409)
       at android.support.v4.a.a.a(Unknown Source)
       at android.support.v7.widget.l.a(Unknown Source)
       at android.support.v7.widget.l.a(Unknown Source)
       at android.support.v7.c.a.b.b(Unknown Source)
       at android.support.v7.widget.bm.a(Unknown Source)
       at android.support.v7.widget.SwitchCompat.<init>(Unknown Source)
       at android.support.v7.widget.SwitchCompat.<init>(Unknown Source)
       at java.lang.reflect.Constructor.newInstance(Constructor.java)
       at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
       at android.view.LayoutInflater.createView(LayoutInflater.java:614)
       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:750)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:483)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:415)
       at android.support.v7.view.menu.j.a(Unknown Source)
       at android.support.v7.view.menu.j.setActionView(Unknown Source)
       at android.support.v7.view.g$b.a(Unknown Source)
       at android.support.v7.view.g$b.b(Unknown Source)
       at android.support.v7.view.g.a(Unknown Source)
       at android.support.v7.view.g.a(Unknown Source)
       at android.support.v7.view.g.inflate(Unknown Source)
       at android.support.design.widget.NavigationView.a(Unknown Source)
       at android.support.design.widget.NavigationView.<init>(Unknown Source)
       at android.support.design.widget.NavigationView.<init>(Unknown Source)
       at java.lang.reflect.Constructor.newInstance(Constructor.java)
       at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
       at android.view.LayoutInflater.createView(LayoutInflater.java:614)
       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:750)
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:813)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:511)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:415)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:366)
       at android.support.v7.app.l.b(Unknown Source)
       at android.support.v7.app.e.setContentView(Unknown Source)
       at com.App.onCreate(Unknown Source)
       at android.app.Activity.performCreate(Activity.java:6575)
       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1134)
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3143)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3300)
       at android.app.ActivityThread.access$1000(ActivityThread.java:211)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1705)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:145)
       at android.app.ActivityThread.main(ActivityThread.java:6946)
       at java.lang.reflect.Method.invoke(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:372)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)

Caused by android.content.res.Resources$NotFoundException: Unable to find resource ID #0x7f080012
       at android.content.res.Resources.getResourceName(Resources.java:3455)
       at android.content.res.Resources.loadDrawableForCookie(Resources.java:3941)
       at android.content.res.Resources.loadDrawable(Resources.java:3853)
       at android.content.res.TypedArray.getDrawable(TypedArray.java:776)
       at android.graphics.drawable.StateListDrawable.inflateChildElements(StateListDrawable.java:182)
       at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:127)
       at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:1192)
       at android.graphics.drawable.Drawable.createFromXml(Drawable.java:1086)
       at android.content.res.Resources.loadDrawableForCookie(Resources.java:3969)
       at android.content.res.Resources.loadDrawable(Resources.java:3853)
       at android.content.res.Resources.getDrawable(Resources.java:1949)
       at android.content.Context.getDrawable(Context.java:409)
       at android.support.v4.a.a.a(Unknown Source)
       at android.support.v7.widget.l.a(Unknown Source)
       at android.support.v7.widget.l.a(Unknown Source)
       at android.support.v7.c.a.b.b(Unknown Source)
       at android.support.v7.widget.bm.a(Unknown Source)
       at android.support.v7.widget.SwitchCompat.<init>(Unknown Source)
       at android.support.v7.widget.SwitchCompat.<init>(Unknown Source)
       at java.lang.reflect.Constructor.newInstance(Constructor.java)
       at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
       at android.view.LayoutInflater.createView(LayoutInflater.java:614)
       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:750)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:483)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:415)
       at android.support.v7.view.menu.j.a(Unknown Source)
       at android.support.v7.view.menu.j.setActionView(Unknown Source)
       at android.support.v7.view.g$b.a(Unknown Source)
       at android.support.v7.view.g$b.b(Unknown Source)
       at android.support.v7.view.g.a(Unknown Source)
       at android.support.v7.view.g.a(Unknown Source)
       at android.support.v7.view.g.inflate(Unknown Source)
       at android.support.design.widget.NavigationView.a(Unknown Source)
       at android.support.design.widget.NavigationView.<init>(Unknown Source)
       at android.support.design.widget.NavigationView.<init>(Unknown Source)
       at java.lang.reflect.Constructor.newInstance(Constructor.java)
       at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
       at android.view.LayoutInflater.createView(LayoutInflater.java:614)
       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:750)
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:813)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:511)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:415)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:366)
       at android.support.v7.app.l.b(Unknown Source)
       at android.support.v7.app.e.setContentView(Unknown Source)
       at com.App.onCreate(Unknown Source)
       at android.app.Activity.performCreate(Activity.java:6575)
       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1134)
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3143)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3300)
       at android.app.ActivityThread.access$1000(ActivityThread.java:211)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1705)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:145)
       at android.app.ActivityThread.main(ActivityThread.java:6946)
       at java.lang.reflect.Method.invoke(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:372)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)

这是我的 build.gradle 依赖项:-

Here is my build.gradle Dependency:-

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
    exclude group: 'com.android.support', module: 'support-annotations'
})
implementation 'com.afollestad.material-dialogs:core:0.9.6.0'


implementation 'com.android.support.constraint:constraint-layout:1.1.2'
testCompile 'junit:junit:4.12'

implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:customtabs:27.1.1'

implementation 'com.android.support:cardview-v7:27.1.1'
implementation 'com.jakewharton:butterknife:8.8.1'
implementation 'com.android.support:design:27.1.1'
implementation 'com.android.support:support-v4:27.1.1'

annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
implementation 'com.github.hotchemi:android-rate:1.0.1'
implementation 'com.google.android.gms:play-services-ads:15.0.1'

implementation('com.crashlytics.sdk.android:crashlytics:2.6.8@aar') {
    transitive = true;
}

implementation 'com.getkeepsafe.taptargetview:taptargetview:1.11.0'
implementation 'petrov.kristiyan:colorpicker-library:1.1.8'}

根据您的错误消息,基本错误 (ResourceNotFoundException) 在从 v7 支持库调用到 v4 支持后出现找不到 abc_switch_thumb_material.xml(在 v7 库中)的库.

Based on your error messages, the base error (ResourceNotFoundException) shows up after a call from the v7 support library to the v4 support library where it can't find abc_switch_thumb_material.xml (which is in the v7 library).

如果可能,请从 gradle 文件中移除对 com.android.support:support-v4:27.1.1 的依赖.

Remove the dependency on com.android.support:support-v4:27.1.1 from the gradle file if possible.