title: React Native - Null pointer dereference after navigating to/from a page containing multiple tweets embedded inside their own WebViews
body: <p>The app I'm currently building for work is mainly focused around displaying articles. Some of them contain Twitter embeds (on the web version) and since the API is shared by both of our apps I also receive the embed as HTML. Whenever I try to display tweets inside a WebView with the source set to the HTML and the Twitter JS script for styling, the page either loads correctly but crashes when I press back (using react-navigation) or it simply crashes on load but ONLY ON ANDROID.</p>
  
  <p>I have tried the following:</p>
  
  <ul>
  <li><p>Use the community supported WebView <a href="https://github.com/react-native-community/react-native-webview" rel="noreferrer">package</a> instead of the built-in one. I have opened an <a href="https://github.com/react-native-community/react-native-webview/issues/623" rel="noreferrer">issue</a> over there as well.</p></li>
  <li><p>Remove the JS script from the WebView.</p></li>
  <li><p>Use the <code>injectedJavaScript</code> prop instead.</p></li>
  <li><p>Install TwitterKit to use the native embeds, unfortunately that's not supported by Twitter anymore :(</p></li>
  </ul>
  
  <p>This is how I render the WebViews:</p>
  
  <pre><code>const JS = '&lt;script type="text/javascript" src="https://platform.twitter.com/widgets.js"&gt;&lt;/script&gt;';
  return (
      &lt;View
          key={content.embed._id} 
          style={[{ overflow : "hidden", marginTop : 15, marginStart : 15 }]}&gt;
          &lt;WebView 
              scrollEnabled={false}
              style={{ height : 150, width : Dimensions.get('window').width - 30 }}
              source={{ html : content.embed.html + JS }} /&gt;
      &lt;/View&gt;
  );
  </code></pre>
  
  <p>This is the stack trace from Android Studio (I don't even get a RedBox, just a plain old hard crash).</p>
  
  <pre><code>Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x1c in tid 13662 (RenderThread), pid 13634 (com.example)
  Build fingerprint: 'google/sdk_gphone_x86/generic_x86:9/PSR1.180720.093/5456446:userdebug/dev-keys'
  Revision: '0'
  ABI: 'x86'
  pid: 13634, tid: 13662, name: RenderThread  &gt;&gt;&gt; com.example &lt;&lt;&lt;
  signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x1c
  Cause: null pointer dereference
      eax e7a959c0  ebx f0a794a0  ecx f0a6994c  edx 00000002
      edi efcbbd9c  esi 00000000
      ebp d314a7e8  esp d314a7d0  eip f07edeea
  backtrace:
      #00 pc 0060ceea  /system/lib/libhwui.so (SkSurface::getCanvas()+26)
      #01 pc 0009b53d  /system/lib/libhwui.so (android::uirenderer::skiapipeline::GLFunctorDrawable::onDraw(SkCanvas*)+3357)
      #02 pc 005200f7  /system/lib/libhwui.so (SkDrawable::draw(SkCanvas*, SkMatrix const*)+279)
      #03 pc 0051c9a6  /system/lib/libhwui.so (SkCanvas::onDrawDrawable(SkDrawable*, SkMatrix const*)+38)
      #04 pc 00178318  /system/lib/libhwui.so (SkCanvas::drawDrawable(SkDrawable*, SkMatrix const*)+344)
      #05 pc 005208f5  /system/lib/libhwui.so (SkLiteDL::draw(SkCanvas*) const+229)
      #06 pc 004fe090  /system/lib/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::drawContent(SkCanvas*) const+352)
      #07 pc 004fe51f  /system/lib/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::forceDraw(SkCanvas*)+287)
      #08 pc 0052006d  /system/lib/libhwui.so (SkDrawable::draw(SkCanvas*, SkMatrix const*)+141)
      #09 pc 0051c9a6  /system/lib/libhwui.so (SkCanvas::onDrawDrawable(SkDrawable*, SkMatrix const*)+38)
      #10 pc 00178318  /system/lib/libhwui.so (SkCanvas::drawDrawable(SkDrawable*, SkMatrix const*)+344)
      #11 pc 005208f5  /system/lib/libhwui.so (SkLiteDL::draw(SkCanvas*) const+229)
      #12 pc 004fe090  /system/lib/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::drawContent(SkCanvas*) const+352)
      #13 pc 004fe51f  /system/lib/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::forceDraw(SkCanvas*)+287)
      #14 pc 0052006d  /system/lib/libhwui.so (SkDrawable::draw(SkCanvas*, SkMatrix const*)+141)
      #15 pc 0051c9a6  /system/lib/libhwui.so (SkCanvas::onDrawDrawable(SkDrawable*, SkMatrix const*)+38)
      #16 pc 00178318  /system/lib/libhwui.so (SkCanvas::drawDrawable(SkDrawable*, SkMatrix const*)+344)
      #17 pc 005208f5  /system/lib/libhwui.so (SkLiteDL::draw(SkCanvas*) const+229)
      #18 pc 004fe090  /system/lib/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::drawContent(SkCanvas*) const+352)
      #19 pc 004fe51f  /system/lib/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::forceDraw(SkCanvas*)+287)
      #20 pc 0052006d  /system/lib/libhwui.so (SkDrawable::draw(SkCanvas*, SkMatrix const*)+141)
      #21 pc 0051c9a6  /system/lib/libhwui.so (SkCanvas::onDrawDrawable(SkDrawable*, SkMatrix const*)+38)
      #22 pc 00178318  /system/lib/libhwui.so (SkCanvas::drawDrawable(SkDrawable*, SkMatrix const*)+344)
      #23 pc 005208f5  /system/lib/libhwui.so (SkLiteDL::draw(SkCanvas*) const+229)
      #24 pc 004fe090  /system/lib/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::drawContent(SkCanvas*) const+352)
      #25 pc 004fe51f  /system/lib/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::forceDraw(SkCanvas*)+287)
      #26 pc 0052006d  /system/lib/libhwui.so (SkDrawable::draw(SkCanvas*, SkMatrix const*)+141)
      #27 pc 0051c9a6  /system/lib/libhwui.so (SkCanvas::onDrawDrawable(SkDrawable*, SkMatrix const*)+38)
      #28 pc 00178318  /system/lib/libhwui.so (SkCanvas::drawDrawable(SkDrawable*, SkMatrix const*)+344)
      #29 pc 005208f5  /system/lib/libhwui.so (SkLiteDL::draw(SkCanvas*) const+229)
      #30 pc 004fe090  /system/lib/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::drawContent(SkCanvas*) const+352)
      #31 pc 004fe51f  /system/lib/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::forceDraw(SkCanvas*)+287)
      #32 pc 0052006d  /system/lib/libhwui.so (SkDrawable::draw(SkCanvas*, SkMatrix const*)+141)
      #33 pc 0051c9a6  /system/lib/libhwui.so (SkCanvas::onDrawDrawable(SkDrawable*, SkMatrix const*)+38)
      #34 pc 00178318  /system/lib/libhwui.so (SkCanvas::drawDrawable(SkDrawable*, SkMatrix const*)+344)
      #35 pc 005208f5  /system/lib/libhwui.so (SkLiteDL::draw(SkCanvas*) const+229)
      #36 pc 004fe090  /system/lib/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::drawContent(SkCanvas*) const+352)
      #37 pc 004fe51f  /system/lib/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::forceDraw(SkCanvas*)+287)
      #38 pc 0052006d  /system/lib/libhwui.so (SkDrawable::draw(SkCanvas*, SkMatrix const*)+141)
      #39 pc 0051c9a6  /system/lib/libhwui.so (SkCanvas::onDrawDrawable(SkDrawable*, SkMatrix const*)+38)
      #40 pc 00178318  /system/lib/libhwui.so (SkCanvas::drawDrawable(SkDrawable*, SkMatrix const*)+344)
      #41 pc 005208f5  /system/lib/libhwui.so (SkLiteDL::draw(SkCanvas*) const+229)
      #42 pc 004fe090  /system/lib/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::drawContent(SkCanvas*) const+352)
      #43 pc 004fe51f  /system/lib/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::forceDraw(SkCanvas*)+287)
      #44 pc 000a655e  /system/lib/libhwui.so (android::uirenderer::skiapipeline::SkiaPipeline::renderLayersImpl(android::uirenderer::LayerUpdateQueue const&amp;, bool, bool)+862)
      #45 pc 00546e44  /system/lib/libhwui.so (android::uirenderer::skiapipeline::SkiaPipeline::renderFrame(android::uirenderer::LayerUpdateQueue const&amp;, SkRect const&amp;, std::__1::vector&lt;android::sp&lt;android::uirenderer::RenderNode&gt;, std::__1::allocator&lt;android::sp&lt;android::uirenderer::RenderNode&gt;&gt;&gt; const&amp;, bool, bool, android::uirenderer::Rect const&amp;, sk_sp&lt;SkSurface&gt;)+84)
      #46 pc 00545e39  /system/lib/libhwui.so (android::uirenderer::skiapipeline::SkiaOpenGLPipeline::draw(android::uirenderer::renderthread::Frame const&amp;, SkRect const&amp;, SkRect const&amp;, android::uirenderer::FrameBuilder::LightGeometry const&amp;, android::uirenderer::LayerUpdateQueue*, android::uirenderer::Rect const&amp;, bool, bool, android::uirenderer::BakedOpRenderer::LightInfo const&amp;, std::__1::vector&lt;android::sp&lt;android::uirenderer::RenderNode&gt;, std::__1::allocator&lt;android::sp&lt;android::uirenderer::RenderNode&gt;&gt;
      #47 pc 000b2e76  /system/lib/libhwui.so (android::uirenderer::renderthread::CanvasContext::draw()+262)
      #48 pc 0054bd02  /system/lib/libhwui.so (_ZNSt3__110__function6__funcIZN7android10uirenderer12renderthread13DrawFrameTask11postAndWaitEvE3$_0NS_9allocatorIS6_EEFvvEEclEv$c303f2d2360db58ed70a2d0ac7ed911b+898)
      #49 pc 004fd4c2  /system/lib/libhwui.so (android::uirenderer::WorkQueue::process()+242)
      #50 pc 000c454a  /system/lib/libhwui.so (android::uirenderer::renderthread::RenderThread::threadLoop()+314)
      #51 pc 0000e616  /system/lib/libutils.so (android::Thread::_threadLoop(void*)+326)
      #52 pc 0000df76  /system/lib/libutils.so (thread_data_t::trampoline(thread_data_t const*)+246)
      #53 pc 0008f065  /system/lib/libc.so (__pthread_start(void*)+53)
  </code></pre>