title: android Failed to load WebView provider: No WebView installed
body: <p>Recently, we've started seeing this new entry in our crashlytics which says that android can't find the webview package on the device.</p>
  
  <p>Here's the full stacktrace  (classes from our source code have been replaced with <code>....</code>. :    </p>
  
  <pre><code> Fatal Exception: android.view.InflateException: Binary XML file line #139: Binary XML file line #139: Error inflating class &lt;unknown&gt;
  
  Caused by android.view.InflateException: Binary XML file line #139: Error inflating class &lt;unknown&gt;
  
  Caused by java.lang.reflect.InvocationTargetException
         at java.lang.reflect.Constructor.newInstance0(Constructor.java)
         at java.lang.reflect.Constructor.newInstance(Constructor.java:430)
         at android.view.LayoutInflater.createView(LayoutInflater.java:645)
         at g.a.a.a.d.a(SourceFile:211)
         at g.a.a.a.d.a(SourceFile:20)
         at g.a.a.a.d$a.onCreateView(SourceFile:302)
         at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:189)
         at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:777)
         at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)
         at android.view.LayoutInflater.rInflate(LayoutInflater.java:858)
         at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
         at android.view.LayoutInflater.rInflate(LayoutInflater.java:861)
         at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
         at android.view.LayoutInflater.rInflate(LayoutInflater.java:861)
         at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
         at android.view.LayoutInflater.rInflate(LayoutInflater.java:861)
         at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
         at android.view.LayoutInflater.inflate(LayoutInflater.java:518)
         at g.a.a.a.d.inflate(SourceFile:60)
         at android.view.LayoutInflater.inflate(LayoutInflater.java:426)
         at android.view.LayoutInflater.inflate(LayoutInflater.java:377)
         at ......(SourceFile:148)
         at ......(SourceFile:119)
         at ......(SourceFile:28)
         at android.support.v4.view.ViewPager.a(SourceFile:1034)
         at android.support.v4.view.ViewPager.a(SourceFile:1182)
         at android.support.v4.view.ViewPager.c(SourceFile:1116)
         at android.support.v4.view.ViewPager.onMeasure(SourceFile:1642)
         at ....(SourceFile:27)
         at android.view.View.measure(View.java:20234)
         at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6249)
         at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1705)
         at android.widget.LinearLayout.measureVertical(LinearLayout.java:797)
         at android.widget.LinearLayout.onMeasure(LinearLayout.java:657)
         at android.view.View.measure(View.java:20234)
         at android.widget.ScrollView.measureChildWithMargins(ScrollView.java:1320)
         at android.widget.FrameLayout.onMeasure(FrameLayout.java:214)
         at android.widget.ScrollView.onMeasure(ScrollView.java:345)
         at android.view.View.measure(View.java:20234)
         at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6249)
         at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1705)
         at android.widget.LinearLayout.measureVertical(LinearLayout.java:797)
         at android.widget.LinearLayout.onMeasure(LinearLayout.java:657)
         at android.view.View.measure(View.java:20234)
         at android.support.v4.view.ViewPager.onMeasure(SourceFile:1658)
         at android.view.View.measure(View.java:20234)
         at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:825)
         at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:511)
         at android.view.View.measure(View.java:20234)
         at android.support.v4.widget.DrawerLayout.onMeasure(SourceFile:1081)
         at android.view.View.measure(View.java:20234)
         at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6249)
         at android.widget.FrameLayout.onMeasure(FrameLayout.java:214)
         at android.support.v7.widget.ContentFrameLayout.onMeasure(SourceFile:139)
         at android.view.View.measure(View.java:20234)
         at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6249)
         at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1705)
         at android.widget.LinearLayout.measureVertical(LinearLayout.java:797)
         at android.widget.LinearLayout.onMeasure(LinearLayout.java:657)
         at android.view.View.measure(View.java:20234)
         at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6249)
         at android.widget.FrameLayout.onMeasure(FrameLayout.java:214)
         at android.view.View.measure(View.java:20234)
         at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6249)
         at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1705)
         at android.widget.LinearLayout.measureVertical(LinearLayout.java:797)
         at android.widget.LinearLayout.onMeasure(LinearLayout.java:657)
         at android.view.View.measure(View.java:20234)
         at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6249)
         at android.widget.FrameLayout.onMeasure(FrameLayout.java:214)
         at com.android.internal.policy.DecorView.onMeasure(DecorView.java:716)
         at android.view.View.measure(View.java:20234)
         at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2659)
         at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1600)
         at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1873)
         at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1485)
         at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7078)
         at android.view.Choreographer$CallbackRecord.run(Choreographer.java:910)
         at android.view.Choreographer.doCallbacks(Choreographer.java:712)
         at android.view.Choreographer.doFrame(Choreographer.java:646)
         at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:896)
         at android.os.Handler.handleCallback(Handler.java:836)
         at android.os.Handler.dispatchMessage(Handler.java:103)
         at android.os.Looper.loop(Looper.java:203)
         at android.app.ActivityThread.main(ActivityThread.java:6369)
         at java.lang.reflect.Method.invoke(Method.java)
         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1088)
         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:949)
  Caused by android.util.AndroidRuntimeException: android.webkit.WebViewFactory$MissingWebViewPackageException: Failed to load WebView provider: No WebView installed
         at android.webkit.WebViewFactory.getProviderClass(WebViewFactory.java:395)
         at android.webkit.WebViewFactory.getProvider(WebViewFactory.java:194)
         at android.webkit.WebView.getFactory(WebView.java:2592)
         at android.webkit.WebView.findAddress(WebView.java:1958)
         at android.text.util.Linkify.gatherMapLinks(Linkify.java:599)
         at android.text.util.Linkify.addLinks(Linkify.java:287)
         at android.widget.TextView.setText(TextView.java:4474)
         at android.widget.TextView.setText(TextView.java:4395)
         at android.widget.TextView.&lt;init&gt;(TextView.java:1472)
         at android.widget.TextView.&lt;init&gt;(TextView.java:727)
         at android.widget.TextView.&lt;init&gt;(TextView.java:723)
         at me.grantland.widget.AutofitTextView.&lt;init&gt;(SourceFile:25)
         at java.lang.reflect.Constructor.newInstance0(Constructor.java)
         at java.lang.reflect.Constructor.newInstance(Constructor.java:430)
         at android.view.LayoutInflater.createView(LayoutInflater.java:645)
         at g.a.a.a.d.a(SourceFile:211)
         at g.a.a.a.d.a(SourceFile:20)
         at g.a.a.a.d$a.onCreateView(SourceFile:302)
         at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:189)
         at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:777)
         at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)
         at android.view.LayoutInflater.rInflate(LayoutInflater.java:858)
         at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
         at android.view.LayoutInflater.rInflate(LayoutInflater.java:861)
         at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
         at android.view.LayoutInflater.rInflate(LayoutInflater.java:861)
         at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
         at android.view.LayoutInflater.rInflate(LayoutInflater.java:861)
         at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
         at android.view.LayoutInflater.inflate(LayoutInflater.java:518)
         at g.a.a.a.d.inflate(SourceFile:60)
         at android.view.LayoutInflater.inflate(LayoutInflater.java:426)
         at android.view.LayoutInflater.inflate(LayoutInflater.java:377)
         at ....(SourceFile:148)
         at ....(SourceFile:119)
         at ....(SourceFile:28)
         at android.support.v4.view.ViewPager.a(SourceFile:1034)
         at android.support.v4.view.ViewPager.a(SourceFile:1182)
         at android.support.v4.view.ViewPager.c(SourceFile:1116)
         at android.support.v4.view.ViewPager.onMeasure(SourceFile:1642)
         at ....(SourceFile:27)
         at android.view.View.measure(View.java:20234)
         at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6249)
         at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1705)
         at android.widget.LinearLayout.measureVertical(LinearLayout.java:797)
         at android.widget.LinearLayout.onMeasure(LinearLayout.java:657)
         at android.view.View.measure(View.java:20234)
         at android.widget.ScrollView.measureChildWithMargins(ScrollView.java:1320)
         at android.widget.FrameLayout.onMeasure(FrameLayout.java:214)
         at android.widget.ScrollView.onMeasure(ScrollView.java:345)
         at android.view.View.measure(View.java:20234)
         at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6249)
         at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1705)
         at android.widget.LinearLayout.measureVertical(LinearLayout.java:797)
         at android.widget.LinearLayout.onMeasure(LinearLayout.java:657)
         at android.view.View.measure(View.java:20234)
         at android.support.v4.view.ViewPager.onMeasure(SourceFile:1658)
         at android.view.View.measure(View.java:20234)
         at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:825)
         at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:511)
         at android.view.View.measure(View.java:20234)
         at android.support.v4.widget.DrawerLayout.onMeasure(SourceFile:1081)
         at android.view.View.measure(View.java:20234)
         at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6249)
         at android.widget.FrameLayout.onMeasure(FrameLayout.java:214)
         at android.support.v7.widget.ContentFrameLayout.onMeasure(SourceFile:139)
         at android.view.View.measure(View.java:20234)
         at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6249)
         at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1705)
         at android.widget.LinearLayout.measureVertical(LinearLayout.java:797)
         at android.widget.LinearLayout.onMeasure(LinearLayout.java:657)
         at android.view.View.measure(View.java:20234)
         at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6249)
         at android.widget.FrameLayout.onMeasure(FrameLayout.java:214)
         at android.view.View.measure(View.java:20234)
         at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6249)
         at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1705)
         at android.widget.LinearLayout.measureVertical(LinearLayout.java:797)
         at android.widget.LinearLayout.onMeasure(LinearLayout.java:657)
         at android.view.View.measure(View.java:20234)
         at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6249)
         at android.widget.FrameLayout.onMeasure(FrameLayout.java:214)
         at com.android.internal.policy.DecorView.onMeasure(DecorView.java:716)
         at android.view.View.measure(View.java:20234)
         at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2659)
         at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1600)
         at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1873)
         at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1485)
         at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7078)
         at android.view.Choreographer$CallbackRecord.run(Choreographer.java:910)
         at android.view.Choreographer.doCallbacks(Choreographer.java:712)
         at android.view.Choreographer.doFrame(Choreographer.java:646)
         at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:896)
         at android.os.Handler.handleCallback(Handler.java:836)
         at android.os.Handler.dispatchMessage(Handler.java:103)
         at android.os.Looper.loop(Looper.java:203)
         at android.app.ActivityThread.main(ActivityThread.java:6369)
         at java.lang.reflect.Method.invoke(Method.java)
         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1088)
         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:949)
  Caused by android.webkit.WebViewFactory$MissingWebViewPackageException: Failed to load WebView provider: No WebView installed
         at android.webkit.WebViewFactory.getWebViewContextAndSetProvider(WebViewFactory.java:294)
         at android.webkit.WebViewFactory.getProviderClass(WebViewFactory.java:354)
         at android.webkit.WebViewFactory.getProvider(WebViewFactory.java:194)
         at android.webkit.WebView.getFactory(WebView.java:2592)
         at android.webkit.WebView.findAddress(WebView.java:1958)
         at android.text.util.Linkify.gatherMapLinks(Linkify.java:599)
         at android.text.util.Linkify.addLinks(Linkify.java:287)
         at android.widget.TextView.setText(TextView.java:4474)
         at android.widget.TextView.setText(TextView.java:4395)
         at android.widget.TextView.&lt;init&gt;(TextView.java:1472)
         at android.widget.TextView.&lt;init&gt;(TextView.java:727)
         at android.widget.TextView.&lt;init&gt;(TextView.java:723)
         at me.grantland.widget.AutofitTextView.&lt;init&gt;(SourceFile:25)
         at java.lang.reflect.Constructor.newInstance0(Constructor.java)
         at java.lang.reflect.Constructor.newInstance(Constructor.java:430)
         at android.view.LayoutInflater.createView(LayoutInflater.java:645)
         at g.a.a.a.d.a(SourceFile:211)
         at g.a.a.a.d.a(SourceFile:20)
         at g.a.a.a.d$a.onCreateView(SourceFile:302)
         at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:189)
         at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:777)
         at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)
         at android.view.LayoutInflater.rInflate(LayoutInflater.java:858)
         at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
         at android.view.LayoutInflater.rInflate(LayoutInflater.java:861)
         at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
         at android.view.LayoutInflater.rInflate(LayoutInflater.java:861)
         at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
         at android.view.LayoutInflater.rInflate(LayoutInflater.java:861)
         at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
         at android.view.LayoutInflater.inflate(LayoutInflater.java:518)
         at g.a.a.a.d.inflate(SourceFile:60)
         at android.view.LayoutInflater.inflate(LayoutInflater.java:426)
         at android.view.LayoutInflater.inflate(LayoutInflater.java:377)
         at ....(SourceFile:148)
         at ....(SourceFile:119)
         at ....(SourceFile:28)
         at android.support.v4.view.ViewPager.a(SourceFile:1034)
         at android.support.v4.view.ViewPager.a(SourceFile:1182)
         at android.support.v4.view.ViewPager.c(SourceFile:1116)
         at android.support.v4.view.ViewPager.onMeasure(SourceFile:1642)
         at ....(SourceFile:27)
         at android.view.View.measure(View.java:20234)
         at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6249)
         at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1705)
         at android.widget.LinearLayout.measureVertical(LinearLayout.java:797)
         at android.widget.LinearLayout.onMeasure(LinearLayout.java:657)
         at android.view.View.measure(View.java:20234)
         at android.widget.ScrollView.measureChildWithMargins(ScrollView.java:1320)
         at android.widget.FrameLayout.onMeasure(FrameLayout.java:214)
         at android.widget.ScrollView.onMeasure(ScrollView.java:345)
         at android.view.View.measure(View.java:20234)
         at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6249)
         at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1705)
         at android.widget.LinearLayout.measureVertical(LinearLayout.java:797)
         at android.widget.LinearLayout.onMeasure(LinearLayout.java:657)
         at android.view.View.measure(View.java:20234)
         at android.support.v4.view.ViewPager.onMeasure(SourceFile:1658)
         at android.view.View.measure(View.java:20234)
         at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:825)
         at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:511)
         at android.view.View.measure(View.java:20234)
         at android.support.v4.widget.DrawerLayout.onMeasure(SourceFile:1081)
         at android.view.View.measure(View.java:20234)
         at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6249)
         at android.widget.FrameLayout.onMeasure(FrameLayout.java:214)
         at android.support.v7.widget.ContentFrameLayout.onMeasure(SourceFile:139)
         at android.view.View.measure(View.java:20234)
         at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6249)
         at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1705)
         at android.widget.LinearLayout.measureVertical(LinearLayout.java:797)
         at android.widget.LinearLayout.onMeasure(LinearLayout.java:657)
         at android.view.View.measure(View.java:20234)
         at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6249)
         at android.widget.FrameLayout.onMeasure(FrameLayout.java:214)
         at android.view.View.measure(View.java:20234)
         at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6249)
         at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1705)
         at android.widget.LinearLayout.measureVertical(LinearLayout.java:797)
         at android.widget.LinearLayout.onMeasure(LinearLayout.java:657)
         at android.view.View.measure(View.java:20234)
         at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6249)
         at android.widget.FrameLayout.onMeasure(FrameLayout.java:214)
         at com.android.internal.policy.DecorView.onMeasure(DecorView.java:716)
         at android.view.View.measure(View.java:20234)
         at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2659)
         at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1600)
         at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1873)
         at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1485)
         at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7078)
         at android.view.Choreographer$CallbackRecord.run(Choreographer.java:910)
         at android.view.Choreographer.doCallbacks(Choreographer.java:712)
         at android.view.Choreographer.doFrame(Choreographer.java:646)
         at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:896)
         at android.os.Handler.handleCallback(Handler.java:836)
         at android.os.Handler.dispatchMessage(Handler.java:103)
         at android.os.Looper.loop(Looper.java:203)
         at android.app.ActivityThread.main(ActivityThread.java:6369)
         at java.lang.reflect.Method.invoke(Method.java)
         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1088)
         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:949)
  </code></pre>
  
  <p>We are seeing this on :</p>
  
  <p>Android versions : 5,6,7</p>
  
  <p>Devices Manufacturers: Lenovo, oneplus, samsung, motorola</p>
  
  <p>And, the devices are not rooted.</p>
  
  <p>After searching for a while, I am not able to find any appropriate cause (and handling) for this. Went through <a href="https://stackoverflow.com/questions/45878562/failed-to-load-webview-provider-no-webview-installed">this</a> question also but it doesn't have any solution.</p>
  
  <p>Please help.</p>
  
  <p>Edit : This is happening for a lot of our users, so I can't go and tell everyone to check/install webiew from the play store. 
  Is there a better solution for this?</p>