我的应用程序在 Google Play 上,它在大多数设备(数千个用户)上运行良好。但在极少数情况下(占每日活跃用户百分比的一小部分)我得到Error inflating class android.webkit.WebView
当我为我的片段充气布局时onCreateView
方法。
完整的堆栈跟踪如下:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.tapmedia.tapito/com.tapmedia.tapito.LockscreenActivity}: android.view.InflateException: Binary XML file line #20: Error inflating class android.webkit.WebView
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2694)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2759)
at android.app.ActivityThread.access$900(ActivityThread.java:178)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1449)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5944)
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:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
Caused by: android.view.InflateException: Binary XML file line #20: Error inflating class android.webkit.WebView
at android.view.LayoutInflater.createView(LayoutInflater.java:640)
at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:689)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:748)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:813)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:821)
at android.view.LayoutInflater.inflate(LayoutInflater.java:511)
at android.view.LayoutInflater.inflate(LayoutInflater.java:415)
at com.tapmedia.tapito.WebViewFragment.onCreateView(SourceFile:84)
at android.support.v4.app.Fragment.performCreateView(SourceFile:1789)
at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:924)
at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:1116)
at android.support.v4.app.FragmentManagerImpl.onCreateView(SourceFile:2196)
at android.support.v4.app.FragmentActivity.onCreateView(SourceFile:300)
at android.support.v7.app.AppCompatDelegateImplV7.callActivityOnCreateView(SourceFile:838)
at android.support.v7.app.AppCompatDelegateImplV11.callActivityOnCreateView(SourceFile:34)
at android.support.v7.app.AppCompatDelegateImplV7.onCreateView(SourceFile:826)
at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(SourceFile:44)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:732)
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.AppCompatDelegateImplV7.setContentView(SourceFile:249)
at android.support.v7.app.AppCompatActivity.setContentView(SourceFile:106)
at com.tapmedia.tapito.LockscreenActivity.onCreate(SourceFile:103)
at android.app.Activity.performCreate(Activity.java:6289)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2647)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2759)
at android.app.ActivityThread.access$900(ActivityThread.java:178)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1449)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5944)
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:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
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 com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:689)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:748)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:813)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:821)
at android.view.LayoutInflater.inflate(LayoutInflater.java:511)
at android.view.LayoutInflater.inflate(LayoutInflater.java:415)
at com.tapmedia.tapito.WebViewFragment.onCreateView(SourceFile:84)
at android.support.v4.app.Fragment.performCreateView(SourceFile:1789)
at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:924)
at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:1116)
at android.support.v4.app.FragmentManagerImpl.onCreateView(SourceFile:2196)
at android.support.v4.app.FragmentActivity.onCreateView(SourceFile:300)
at android.support.v7.app.AppCompatDelegateImplV7.callActivityOnCreateView(SourceFile:838)
at android.support.v7.app.AppCompatDelegateImplV11.callActivityOnCreateView(SourceFile:34)
at android.support.v7.app.AppCompatDelegateImplV7.onCreateView(SourceFile:826)
at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(SourceFile:44)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:732)
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.AppCompatDelegateImplV7.setContentView(SourceFile:249)
at android.support.v7.app.AppCompatActivity.setContentView(SourceFile:106)
at com.tapmedia.tapito.LockscreenActivity.onCreate(SourceFile:103)
at android.app.Activity.performCreate(Activity.java:6289)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2647)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2759)
at android.app.ActivityThread.access$900(ActivityThread.java:178)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1449)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5944)
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:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
Caused by: android.util.AndroidRuntimeException: android.content.pm.PackageManager$NameNotFoundException: com.google.android.webview
at android.webkit.WebViewFactory.getFactoryClass(WebViewFactory.java:161)
at android.webkit.WebViewFactory.getProvider(WebViewFactory.java:101)
at android.webkit.WebView.getFactory(WebView.java:2193)
at android.webkit.WebView.ensureProviderCreated(WebView.java:2188)
at android.webkit.WebView.setOverScrollMode(WebView.java:2247)
at android.view.View.(View.java:3795)
at android.view.View.(View.java:3909)
at android.view.ViewGroup.(ViewGroup.java:507)
at android.widget.AbsoluteLayout.(AbsoluteLayout.java:55)
at android.webkit.WebView.(WebView.java:547)
at android.webkit.WebView.(WebView.java:492)
at android.webkit.WebView.(WebView.java:475)
at android.webkit.WebView.(WebView.java:462)
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 com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:689)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:748)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:813)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:821)
at android.view.LayoutInflater.inflate(LayoutInflater.java:511)
at android.view.LayoutInflater.inflate(LayoutInflater.java:415)
at com.tapmedia.tapito.WebViewFragment.onCreateView(SourceFile:84)
at android.support.v4.app.Fragment.performCreateView(SourceFile:1789)
at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:924)
at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:1116)
at android.support.v4.app.FragmentManagerImpl.onCreateView(SourceFile:2196)
at android.support.v4.app.FragmentActivity.onCreateView(SourceFile:300)
at android.support.v7.app.AppCompatDelegateImplV7.callActivityOnCreateView(SourceFile:838)
at android.support.v7.app.AppCompatDelegateImplV11.callActivityOnCreateView(SourceFile:34)
at android.support.v7.app.AppCompatDelegateImplV7.onCreateView(SourceFile:826)
at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(SourceFile:44)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:732)
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.AppCompatDelegateImplV7.setContentView(SourceFile:249)
at android.support.v7.app.AppCompatActivity.setContentView(SourceFile:106)
at com.tapmedia.tapito.LockscreenActivity.onCreate(SourceFile:103)
at android.app.Activity.performCreate(Activity.java:6289)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2647)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2759)
at android.app.ActivityThread.access$900(ActivityThread.java:178)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1449)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5944)
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:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
Caused by: android.content.pm.PackageManager$NameNotFoundException: com.google.android.webview
at android.app.ApplicationPackageManager.getPackageInfo(ApplicationPackageManager.java:137)
at android.webkit.WebViewFactory.getFactoryClass(WebViewFactory.java:133)
at android.webkit.WebViewFactory.getProvider(WebViewFactory.java:101)
at android.webkit.WebView.getFactory(WebView.java:2193)
at android.webkit.WebView.ensureProviderCreated(WebView.java:2188)
at android.webkit.WebView.setOverScrollMode(WebView.java:2247)
at android.view.View.(View.java:3795)
at android.view.View.(View.java:3909)
at android.view.ViewGroup.(ViewGroup.java:507)
at android.widget.AbsoluteLayout.(AbsoluteLayout.java:55)
at android.webkit.WebView.(WebView.java:547)
at android.webkit.WebView.(WebView.java:492)
at android.webkit.WebView.(WebView.java:475)
at android.webkit.WebView.(WebView.java:462)
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 com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:689)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:748)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:813)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:821)
at android.view.LayoutInflater.inflate(LayoutInflater.java:511)
at android.view.LayoutInflater.inflate(LayoutInflater.java:415)
at com.tapmedia.tapito.WebViewFragment.onCreateView(SourceFile:84)
at android.support.v4.app.Fragment.performCreateView(SourceFile:1789)
at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:924)
at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:1116)
at android.support.v4.app.FragmentManagerImpl.onCreateView(SourceFile:2196)
at android.support.v4.app.FragmentActivity.onCreateView(SourceFile:300)
at android.support.v7.app.AppCompatDelegateImplV7.callActivityOnCreateView(SourceFile:838)
at android.support.v7.app.AppCompatDelegateImplV11.callActivityOnCreateView(SourceFile:34)
at android.support.v7.app.AppCompatDelegateImplV7.onCreateView(SourceFile:826)
at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(SourceFile:44)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:732)
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.AppCompatDelegateImplV7.setContentView(SourceFile:249)
at android.support.v7.app.AppCompatActivity.setContentView(SourceFile:106)
at com.tapmedia.tapito.LockscreenActivity.onCreate(SourceFile:103)
at android.app.Activity.performCreate(Activity.java:6289)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2647)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2759)
at android.app.ActivityThread.access$900(ActivityThread.java:178)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1449)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5944)
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:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
我不明白出了什么问题。因为这个错误来自在线报告工具(Crashlytics/Fabric),所以我无法判断,是否每次特定用户尝试使用片段时都会发生这种情况,或者用户通常会夸大片段并且错误仅偶尔发生时间。
WebView 小部件是系统的一部分,对吧?我的意思是 - 我不能在我的生产 APK 中缺少某些东西 - 比如支持库等。或者我可以吗?
如果您在运行 Android Lollipop 的设备上看到这些报告,请忽略它们。每当有东西启动使用 WebView 的 Activity,而 WebView 包正在由 Play 商店更新时(目前只能在 Lollipop 上发生),就会发生这种情况。在更新期间,软件包被视为未由软件包管理器安装。也就是说,您的应用程序没有任何问题。更新的包被认为不存在的时间窗口通常很小,因此当应用程序在此类崩溃后重新启动时,它将正常启动。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)