Android crashing on navigation.navigate()

Expo Version: 4.1.6

The Android version of my application is crashing on navigation.navigate() on both standalone builds and in Expo Client. These errors only occur on Android, and not iOS whatsoever. They only happen when navigating from a very specific component on my application, and nowhere else. I has nothing to do with the screens being navigated to, as removing the entire code for those screens and just navigating to a simple <View> </View> still results in a crash. Moreover, the very same screens are navigable to from other screens without any issue. There’s no clear reason why these crashes are happening, but I my understanding is that they are native crashes. I get no errors in development, and no sentry reports for these errors. The only thing I’ve managed to get is a stack trace from my standalone builds.

This is the (abvreviated) component being navigated from:

import React, { useState, useEffect, useContext } from 'react';
import { StyleSheet, Text, View, Image, TouchableOpacity, FlatList, TextInput, Alert } from 'react-native';
import { Button, Overlay } from 'react-native-elements';
import { WebView } from 'react-native-webview';
import { AntDesign, MaterialIcons } from '@expo/vector-icons';
import { useNavigation } from '@react-navigation/native';
import { useIsFocused } from "@react-navigation/native";
import * as Linking from 'expo-linking';
import * as Updates from 'expo-updates';
import Clipboard from 'expo-clipboard';

import pure from 'recompose/pure'
import moment from 'moment';

import HeartButton from './Features/HeartButton';
import StarBar from './Features/StarBar';

import Comment from './NewsfeedComment';
import Reply from './NewsfeedReply';

import LoginModal from '../Login/LoginModal'
import Modal from 'react-native-modal';

import { NewsfeedContext } from '../../App';
import { HeartsContext } from '../../App';
import { CommentsContext } from '../../App';
import { NotificationsContext } from '../../App';
import { ProfileDataContext } from '../../App';
import { ProfileContext } from '../../App';
import { UserProfileContext } from '../../App';
import { UserProfileDataContext } from '../../App';
import { MovieLikesContext } from '../../App';

const Posts = (props) => {

  // Initializes Navigator
  const navigation = useNavigation();

  if (props.data.active == true) {

    return (
      <>
        {props.data.feedTypeDesc == "recommendation" && props.data.recommendation.active == true ?

          <View>

            {/* Profile Info */}
            <View style={{ flexDirection: 'row', flex: 1, justifyContent: 'space-between' }}>
              <View style={{ flexDirection: 'row', flex: 1 }}>
                <TouchableOpacity delayPressIn={20} onPress={() => navigation.navigate("UserProfile", { data: data })}>
                  <View style={styles.profileImage}>
                    <Image source={{ uri: profilePicture }} style={styles.image}></Image>
                  </View>
                </TouchableOpacity>
                <TouchableOpacity delayPressIn={20} onPress={() => navigation.navigate("UserProfile", { data: data })}>
                  <Text style={{ marginTop: 24, marginLeft: 8, fontSize: 14, fontWeight: '500' }}>{props.data.user}</Text>
                </TouchableOpacity>
              </View>
              <TouchableOpacity onPress={() => toggleMainModal()}>
                <View style={{ marginEnd: 20, marginTop: 20 }}>
                  <MaterialIcons name="share" size={22} color="#000"></MaterialIcons>
                </View>
              </TouchableOpacity>
            </View>

            {/* Movie Card */}
            <View style={{ marginLeft: 15, marginRight: 15, marginTop: 10, backgroundColor: '#fff', borderRadius: 5 }} shadowColor="#000" shadowRadius={4} shadowOpacity={0.20} shadowOffset={{ width: 0, height: 1 }} elevation={5}>
              <View style={{ overflow: 'hidden', borderRadius: 5 }}>
                <View style={{ flexDirection: 'row', flex: 1 }}>
                  <TouchableOpacity delayPressIn={20} onPress={() => navigation.navigate("Movie", { props: props.data.recommendation.movie })}>
                    <Image source={{ uri: props.data.recommendation.movie.posterPath }} style={{ height: 114, width: 80 }} />
                  </TouchableOpacity>
                  <View style={{ flexDirection: 'column' }}>

                    <View style={{ flexDirection: 'row' }}>
                      <TouchableOpacity delayPressIn={20} onPress={() => navigation.navigate("Movie", { props: props.data.recommendation.movie })}>
                        <Text style={{ marginLeft: 10, marginTop: 6, fontSize: 18, fontWeight: '500' }}>{movieTitle}</Text>
                      </TouchableOpacity>
                      <Text style={{ marginLeft: 0, marginTop: 10, fontSize: 14, color: '#5D5E5F', fontWeight: '300' }}> {showdate}</Text>
                    </View>

                    <View style={{ flexDirection: 'row', marginTop: 0 }}>
                      <Text style={{ marginLeft: 10, marginTop: 2, fontSize: 18, fontWeight: '200' }}>{percentage == "Not yet rated " ? percentage : rating}</Text>
                      <Text style={{ marginLeft: 0, marginTop: 7, fontSize: 12, fontWeight: '500' }}>{votes}</Text>
                      {votes == 1 ?
                        <Text style={{ marginLeft: 0, marginTop: 7, fontSize: 12, fontWeight: '300' }}> person rated</Text>
                        : <Text style={{ marginLeft: 0, marginTop: 7, fontSize: 12, fontWeight: '300' }}> people rated</Text>
                      }
                    </View>

                    {loggedIn == true ?
                      <View style={{ flexDirection: 'row', marginTop: 5, marginLeft: 8 }}>
                        <View style={{ width: 27, height: 27, borderRadius: 100, overflow: "hidden", left: 55 }}>
                          {friendFour == undefined ?
                            null
                            :
                            <>
                              {friendFour.data.profileImageUrl == undefined ?
                                <Image source={{ uri: "https://www.socan.com/wp-content/uploads/2016/06/blank-profile-hi.png" }} style={styles.image}></Image>
                                : <Image source={{ uri: friendFour.data.profileImageUrl }} style={styles.image}></Image>
                              }
                            </>
                          }
                        </View>
                        <View style={{ width: 27, height: 27, borderRadius: 100, overflow: "hidden", left: 10 }}>
                          {friendThree == undefined ?
                            null
                            :
                            <>
                              {friendThree.data.profileImageUrl == undefined ?
                                <Image source={{ uri: "https://www.socan.com/wp-content/uploads/2016/06/blank-profile-hi.png" }} style={styles.image}></Image>
                                : <Image source={{ uri: friendThree.data.profileImageUrl }} style={styles.image}></Image>
                              }
                            </>
                          }
                        </View>
                        <View style={{ width: 27, height: 27, borderRadius: 100, overflow: "hidden", right: 35 }}>
                          {friendTwo == undefined ?
                            null
                            :
                            <>
                              {friendTwo.data.profileImageUrl == undefined ?
                                <Image source={{ uri: "https://www.socan.com/wp-content/uploads/2016/06/blank-profile-hi.png" }} style={styles.image}></Image>
                                : <Image source={{ uri: friendTwo.data.profileImageUrl }} style={styles.image}></Image>
                              }
                            </>
                          }
                        </View>
                        <View style={{ width: 27, height: 27, borderRadius: 100, overflow: "hidden", right: 80 }}>
                          {friendOne == undefined ?
                            null
                            :
                            <>
                              {friendOne.data.profileImageUrl == undefined ?
                                <Image source={{ uri: "https://www.socan.com/wp-content/uploads/2016/06/blank-profile-hi.png" }} style={styles.image}></Image>
                                : <Image source={{ uri: friendOne.data.profileImageUrl }} style={styles.image}></Image>
                              }
                            </>
                          }
                        </View>

                        {friendsNumber == 0 ? null :
                          friendsNumber == 1 ?
                            <>
                              <Text style={{ marginLeft: -70, marginTop: 7.5, fontSize: 12, fontWeight: '500' }}>{friendsNumber}</Text>
                              <Text style={{ marginLeft: 0, marginTop: 7.5, fontSize: 12, fontWeight: '300' }}> friend rated</Text>
                            </> :
                            friendsNumber == 2 ?
                              <>
                                <Text style={{ marginLeft: -50, marginTop: 7.5, fontSize: 12, fontWeight: '500' }}>{friendsNumber}</Text>
                                <Text style={{ marginLeft: 0, marginTop: 7.5, fontSize: 12, fontWeight: '300' }}> friends rated</Text>
                              </> :
                              friendsNumber == 3 ?
                                <>
                                  <Text style={{ marginLeft: -35, marginTop: 7.5, fontSize: 12, fontWeight: '500' }}>{friendsNumber}</Text>
                                  <Text style={{ marginLeft: 0, marginTop: 7.5, fontSize: 12, fontWeight: '300' }}> friends rated</Text>
                                </> :
                                friendsNumber == 4 ?
                                  <>
                                    <Text style={{ marginLeft: -20, marginTop: 7.5, fontSize: 12, fontWeight: '500' }}>{friendsNumber}</Text>
                                    <Text style={{ marginLeft: 0, marginTop: 7.5, fontSize: 12, fontWeight: '300' }}> friends rated</Text>
                                  </>
                                  : null
                        }

                      </View>
                      : <View style={{ flexDirection: 'row', marginTop: 30, marginLeft: 8 }} />
                    }

                    <View style={{ flexDirection: 'row', marginTop: 5, marginLeft: 12 }}>
                      <TouchableOpacity delayPressIn={20} onPress={() => { if (loggedIn) { upVote() } else { toggleModal() } }}>
                        <View>
                          <AntDesign name="like2" size={20} color={upVoted ? "#45D35A" : "#525E64"}></AntDesign>
                        </View>
                      </TouchableOpacity>
                      <TouchableOpacity delayPressIn={20} onPress={() => { if (loggedIn) { downVote() } else { toggleModal() } }}>
                        <View style={{ marginLeft: 15 }}>
                          <AntDesign name="dislike2" size={20} color={downVoted ? "#e92f3c" : "#525E64"}></AntDesign>
                        </View>
                      </TouchableOpacity>
                      <TouchableOpacity delayPressIn={20} onPress={() => { if (loggedIn) { toggleListModal() } else { toggleModal() } }}>
                        <View style={{ marginLeft: 15 }}>
                          <MaterialIcons name="playlist-add" size={20} color="#525E64"></MaterialIcons>
                        </View>
                      </TouchableOpacity>
                    </View>

                  </View>
                </View>
              </View>
            </View>

            {/* Video */}
            {youtube == true ?
              <View style={{ flex: 1, width: '100%', height: 200, padding: 10 }}>
                <WebView
                  javaScriptEnabled={true}
                  source={{ uri: playVideo }}
                />
              </View>
              : null}
            {vimeo == true ?
              <View style={{ flex: 1, width: '100%', height: 250, padding: 10 }}>
                <WebView
                  javaScriptEnabled
                  source={{ uri: playVideo }}
                />
              </View>
              : null}

            {/* StarBar */}
            <View style={{ flexDirection: 'row', flex: 1 }}>
              <View style={{ marginLeft: 12, marginTop: 5 }}>
                <StarBar starCount={stars} />
              </View>
              <Text style={{ marginTop: 4, marginLeft: 4, fontSize: 14, fontWeight: '500', color: '#FED400' }}>{stars}</Text>
            </View>

            {/* Caption */}
            {showFullCaption ?
              <Text style={{ marginLeft: 12, marginRight: 12, marginTop: 5 }}>{fullCaption}</Text>
              :
              <Text style={{ marginLeft: 12, marginRight: 12, marginTop: 5 }}>{caption} <Text style={{ color: 'blue' }} onPress={() => setShowFullCaption(true)}>...</Text></Text>
            }

            {/* Hashtags */}
            <View style={{ flexDirection: 'row', flex: 1, flexWrap: 'wrap', alignItems: 'flex-start', marginLeft: 10, marginTop: 10 }}>
              {(hashtags && hashtags.map((hashtags) => (
                <TouchableOpacity delayPressIn={20} onPress={() => navigation.navigate("HashtagSearch", { hashtag: hashtags })}>
                  <Text style={{ color: 'blue', fontWeight: '200', fontSize: 12, padding: 2, marginRight: 5, marginBottom: 5, borderColor: 'blue', borderWidth: 1, borderRadius: 3 }}>{hashtags}</Text>
                </TouchableOpacity>
              )))}
            </View>

            {/* Timestamp */}
            <Text style={{ marginLeft: 12, marginRight: 12, marginTop: 7, fontSize: 10, fontWeight: '200' }}>{showtime}</Text>

            {/* Bottom Dividier */}
            <View style={{ borderColor: "#E7E7E7", borderTopWidth: 1, marginTop: 10 }}></View>

            {/* Heart Button and Comments */}
            <View style={{ flexDirection: 'row', flex: 1 }}>
              <HeartButton numLiked={numliked} id={props.data.id} hearts={props.heartsData} status={loggedIn} token={authToken} />
              <TouchableOpacity delayPressIn={20} onPress={() => navigation.navigate("Comments", { props: props, data: data })}>
                <View style={{ paddingVertical: 3 }}>
                  <TouchableOpacity delayPressIn={20} onPress={() => navigation.navigate("Comments", { props: props, data: data })}>
                    <Text style={{ marginLeft: 20, marginRight: 12, marginTop: 10, fontSize: 14, color: 'grey', fontWeight: '400' }}> View all {commentsCount} comments </Text>
                  </TouchableOpacity>
                </View>
              </TouchableOpacity>
            </View>

            {/* Comments & Replies */}
            {showComment1 == null || showComment1 == undefined ?
              null : <Comment props={showComment1} myData={props.profileData} token={authToken} status={loggedIn} />}
            {showComment2 == null || showComment2 == undefined ?
              null : <Comment props={showComment2} myData={props.profileData} token={authToken} status={loggedIn} />}
            {showReply == null || showReply == undefined ?
              null : <Reply props={showReply} myData={props.profileData} token={authToken} status={loggedIn} />}

            {/* Bottom Shadow */}
            <View style={{ backgroundColor: "#fff", marginTop: 12.5, marginBottom: 3 }} shadowColor="#000" shadowRadius={1} shadowOpacity={0.20} shadowOffset={{ width: 0, height: 1 }} elevation={5}>
              <View style={{ borderColor: "#E3E9F1", borderWidth: 3 }} />
            </View>

          </View>
            : null}

        {/* List Modal */}
        <View>
          <Modal
            isVisible={showList}
            onBackdropPress={() => setShowList(false)}
            onModalHide={() => { if (newSwitch == true) { toggleCreateListModal() } }}>
            <View style={{ flex: 0.5, backgroundColor: '#fff' }}>
              <Text style={{ textAlign: 'center', marginTop: 10, fontSize: 18 }}>Add to my list</Text>
              <FlatList
                style={styles.innerScroll}
                data={[...props.listData, { addGroup: true }]}
                style={{ marginLeft: 40, marginTop: 10 }}
                renderItem={({ item }) => {
                  if (item.addGroup) {
                    return (
                      <View style={{ marginRight: 8, marginVertical: 4 }}>
                        <TouchableOpacity onPress={() => switchModal()}>
                          <View style={styles.newbox}>
                            <Text style={styles.newname}>New List</Text>
                          </View>
                        </TouchableOpacity>
                      </View>);
                  }
                  return (
                    <View style={{ marginRight: 8, marginVertical: 4 }}>
                      <TouchableOpacity onPress={() => addList(item)}>
                        <View style={styles.box}>
                          <Text style={styles.name}>{item.name ? item.name : 'Name'}</Text>
                        </View>
                      </TouchableOpacity>
                    </View>
                  )
                }}
                keyExtractor={(item) => `item-${item.id}`}
                numColumns={3}
              />
            </View>
          </Modal>
        </View>

        {/* Create List Modal */}
        <View>
          <Modal
            isVisible={showCreate}
            onBackdropPress={() => setShowCreate(false)}>
            <View style={{ flex: 0.32, backgroundColor: '#fff', borderRadius: 10 }}>

              <Text style={{ textAlign: 'center', marginTop: 20 }}>Create a new list</Text>

              <View style={{ marginTop: 40, marginLeft: 30, width: '80%', backgroundColor: '#f0f0f0', borderRadius: 4 }}>
                <TextInput
                  placeholder="Da..."
                  placeholderTextColor="#6b6b6bfd"
                  autoCapitalize='none'
                  value={name}
                  onChangeText={(newValue) => setName(newValue)}
                  style={{ padding: 3, fontSize: 16, color: '#000' }} />
              </View>

              <View style={{ flexDirection: 'row', justifyContent: 'space-around', marginTop: 40 }}>
                <TouchableOpacity>
                  <Text>
                    Cancel
                </Text>
                </TouchableOpacity>
                <TouchableOpacity onPress={createList}>
                  <Text>
                    Create
                </Text>
                </TouchableOpacity>
              </View>
            </View>

          </Modal>
        </View>

        {/* Edit Post Modal */}
        <View>
          <Modal
            isVisible={showMain}
            onBackdropPress={() => setShowMain(false)}>
            <View style={{ flex: 0.32, backgroundColor: '#fff', borderRadius: 10 }}>
              <Text style={{ textAlign: 'center' }}>Options</Text>
              <TouchableOpacity onPress={() => Linking.openURL('http://www.facebook.com/sharer/sharer.php?u=https://panodime.com/watch/sharing/' + props.data.id)}>
                <Text style={{ textAlign: 'left' }}>Share post to Facebook</Text>
              </TouchableOpacity>
              <TouchableOpacity onPress={() => Linking.openURL('http://www.twitter.com/intent/tweet?text=https://panodime.com/watch/sharing/' + props.data.id)}>
                <Text style={{ textAlign: 'left' }}>Share post to Twitter</Text>
              </TouchableOpacity>
              <TouchableOpacity onPress={() => { Clipboard.setString("https://panodime.com/watch/sharing/" + props.data.id); Alert.alert("Success!", "Link has been copied") }}>
                <Text>Share this post elsewhere: <Text selectable={true}>https://panodime.com/watch/sharing/{props.data.id}</Text></Text>
              </TouchableOpacity>
              {loggedIn ?
                <>
                  {props.profileData.login == props.data.user ?
                    <>
                      <TouchableOpacity onPress={() => navigation.navigate("EditRecommendation", { props: props })}>
                        <Text style={{ textAlign: 'left' }}>Edit Post</Text>
                      </TouchableOpacity>
                      <TouchableOpacity onPress={() => deleteReccomendation()}>
                        <Text style={{ textAlign: 'left' }}>Delete Post</Text>
                      </TouchableOpacity>
                    </>
                    : null}
                </>
                : null
              }
            </View>
          </Modal>
        </View>

        {/* Login Gate */}
        <View>
          <Modal
            isVisible={showLogin}
            onBackdropPress={() => setShowLogin(false)}>
            <View style={{ flex: 0.95, backgroundColor: '#fff' }}>
              <Button
                buttonStyle={{ width: 40, height: 40, padding: 0, backgroundColor: '#fff', borderRadius: 10 }}
                icon={{ name: 'close', color: '#000', size: 20 }}
                onPress={() => setShowLogin(false)}
              />
              <LoginModal />
            </View>
          </Modal>
        </View>

      </>

    );
  } else {

    return null

  }
}

export default pure(Posts);

This is the screen being navigated to:

function Movie({ route, navigation }) {
  const authContext = React.useContext(AuthContext);
  const { props } = route.params;
  return (
    <View style={{ flex: 1, backgroundColor: '#fff' }}>
      <MovieScreen props={props} token={authContext.authState.token} status={authContext.authState.status} />
    </View>
  );
}

This is the my package.json:

{
  "main": "node_modules/expo/AppEntry.js",
  "scripts": {
    "start": "expo start",
    "android": "expo start --android",
    "ios": "expo start --ios",
    "web": "expo start --web",
    "eject": "expo eject"
  },
  "dependencies": {
    "@material-ui/core": "^4.11.0",
    "@react-native-async-storage/async-storage": "^1.13.2",
    "@react-native-community/clipboard": "^1.5.1",
    "@react-native-community/masked-view": "0.1.10",
    "@react-navigation/bottom-tabs": "^5.9.2",
    "@react-navigation/compat": "^5.3.0",
    "@react-navigation/native": "^5.8.0",
    "@react-navigation/stack": "^5.10.0",
    "@reduxjs/toolkit": "^1.5.0",
    "@sentry/browser": "^6.0.2",
    "@sentry/react-native": "^2.1.1",
    "@sentry/tracing": "^6.0.2",
    "expo": "^40.0.1",
    "expo-activity-feed": "^0.9.1",
    "expo-app-loading": "^1.0.1",
    "expo-av": "~8.7.0",
    "expo-clipboard": "~1.0.1",
    "expo-constants": "~9.3.3",
    "expo-facebook": "~9.1.0",
    "expo-google-app-auth": "^8.1.3",
    "expo-google-sign-in": "~8.4.0",
    "expo-image-picker": "~9.2.0",
    "expo-linear-gradient": "~8.4.0",
    "expo-notifications": "~0.8.2",
    "expo-splash-screen": "~0.8.1",
    "expo-status-bar": "~1.0.3",
    "expo-updates": "~0.4.1",
    "install": "^0.13.0",
    "moment": "^2.29.1",
    "native-base": "^2.13.14",
    "npm": "^6.14.11",
    "react": "16.13.1",
    "react-dom": "16.13.1",
    "react-native": "https://github.com/expo/react-native/archive/sdk-40.0.1.tar.gz",
    "react-native-anchor-carousel": "^3.1.2",
    "react-native-animatable": "^1.3.3",
    "react-native-elements": "^3.0.0-alpha.1",
    "react-native-gesture-handler": "~1.8.0",
    "react-native-modal": "^11.5.6",
    "react-native-reanimated": "~1.13.0",
    "react-native-restart": "0.0.17",
    "react-native-safe-area-context": "3.1.9",
    "react-native-screens": "~2.15.2",
    "react-native-skeleton-content": "^1.0.20",
    "react-native-star-rating": "^1.1.0",
    "react-native-swipe-modal-up-down": "^1.0.9",
    "react-native-swiper": "^1.6.0",
    "react-native-swiper-flatlist": "^2.0.4",
    "react-native-vector-icons": "^7.1.0",
    "react-native-video": "^5.1.1",
    "react-native-vimeo": "^0.3.0",
    "react-native-web": "~0.13.12",
    "react-native-webview": "11.0.0",
    "react-native-webview-bridge": "^0.40.1",
    "react-navigation": "^1.6.1",
    "react-redux": "^7.2.2",
    "recompose": "^0.30.0",
    "redux": "^4.0.5",
    "sentry-expo": "^3.0.4"
  },
  "devDependencies": {
    "@babel/core": "~7.9.0",
    "redux-devtools": "^3.7.0"
  },
  "private": true
}

> Blockquote

This is the trace:

pid: 0, tid: 0 >>> com.panodime.panodimeapp <<<

backtrace:
  #00  pc 000000000039fe88  /system/lib64/libhwui.so (android::uirenderer::skiapipeline::GLFunctorDrawable::onDraw(SkCanvas*)+984)
  #00  pc 00000000004410f0  /system/lib64/libhwui.so (SkDrawable::draw(SkCanvas*, SkMatrix const*)+88)
  #00  pc 000000000070d684  /system/lib64/libhwui.so (SkGpuDevice::drawDrawable(SkDrawable*, SkMatrix const*, SkCanvas*)+300)
  #00  pc 00000000003590d0  /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::drawContent(SkCanvas*) const+1252)
  #00  pc 000000000035a1c4  /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::forceDraw(SkCanvas*) const+200)
  #00  pc 00000000004410f0  /system/lib64/libhwui.so (SkDrawable::draw(SkCanvas*, SkMatrix const*)+88)
  #00  pc 0000000000359124  /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::drawContent(SkCanvas*) const+1336)
  #00  pc 000000000035a1c4  /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::forceDraw(SkCanvas*) const+200)
  #00  pc 00000000004410f0  /system/lib64/libhwui.so (SkDrawable::draw(SkCanvas*, SkMatrix const*)+88)
  #00  pc 0000000000359124  /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::drawContent(SkCanvas*) const+1336)
  #00  pc 000000000035a1c4  /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::forceDraw(SkCanvas*) const+200)
  #00  pc 00000000004410f0  /system/lib64/libhwui.so (SkDrawable::draw(SkCanvas*, SkMatrix const*)+88)
  #00  pc 0000000000359124  /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::drawContent(SkCanvas*) const+1336)
  #00  pc 000000000035a1c4  /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::forceDraw(SkCanvas*) const+200)
  #00  pc 00000000004410f0  /system/lib64/libhwui.so (SkDrawable::draw(SkCanvas*, SkMatrix const*)+88)
  #00  pc 0000000000359124  /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::drawContent(SkCanvas*) const+1336)
  #00  pc 000000000035a1c4  /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::forceDraw(SkCanvas*) const+200)
  #00  pc 00000000004410f0  /system/lib64/libhwui.so (SkDrawable::draw(SkCanvas*, SkMatrix const*)+88)
  #00  pc 0000000000359124  /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::drawContent(SkCanvas*) const+1336)
  #00  pc 000000000035a1c4  /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::forceDraw(SkCanvas*) const+200)
  #00  pc 00000000004410f0  /system/lib64/libhwui.so (SkDrawable::draw(SkCanvas*, SkMatrix const*)+88)
  #00  pc 0000000000359124  /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::drawContent(SkCanvas*) const+1336)
  #00  pc 000000000035a1c4  /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::forceDraw(SkCanvas*) const+200)
  #00  pc 00000000004410f0  /system/lib64/libhwui.so (SkDrawable::draw(SkCanvas*, SkMatrix const*)+88)
  #00  pc 00000000003590fc  /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::drawContent(SkCanvas*) const+1296)
  #00  pc 000000000035a1c4  /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::forceDraw(SkCanvas*) const+200)
  #00  pc 00000000004410f0  /system/lib64/libhwui.so (SkDrawable::draw(SkCanvas*, SkMatrix const*)+88)
  #00  pc 00000000003590fc  /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::drawContent(SkCanvas*) const+1296)
  #00  pc 000000000035a1c4  /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::forceDraw(SkCanvas*) const+200)
  #00  pc 00000000003a59a8  /system/lib64/libhwui.so (android::uirenderer::skiapipeline::SkiaPipeline::renderLayersImpl(android::uirenderer::LayerUpdateQueue const&, bool)+688)
  #00  pc 00000000003a7110  /system/lib64/libhwui.so (android::uirenderer::skiapipeline::SkiaPipeline::renderFrame(android::uirenderer::LayerUpdateQueue const&, SkRect const&, std::__1::vector<android::sp<android::uirenderer::RenderNode>, std::__1::allocator<android::sp<android::uirenderer::RenderNode> > > const&, bool, android::uirenderer::Rect const&, sk_sp<SkSurface>, SkMatrix const&)+124)
  #00  pc 00000000003a45b4  /system/lib64/libhwui.so (android::uirenderer::skiapipeline::SkiaOpenGLPipeline::draw(android::uirenderer::renderthread::Frame const&, SkRect const&, SkRect const&, android::uirenderer::LightGeometry const&, android::uirenderer::LayerUpdateQueue*, android::uirenderer::Rect const&, bool, android::uirenderer::LightInfo const&, std::__1::vector<android::sp<android::uirenderer::RenderNode>, std::__1::allocator<android::sp<android::uirenderer::RenderNode> > > const&, android::uirenderer::FrameInfoVisualizer*)+416)
  #00  pc 00000000003ad224  /system/lib64/libhwui.so (android::uirenderer::renderthread::CanvasContext::draw()+1080)
  #00  pc 00000000003af460  /system/lib64/libhwui.so (_ZNSt3__110__function6__funcIZN7android10uirenderer12renderthread13DrawFrameTask11postAndWaitEvE3$_0NS_9allocatorIS6_EEFvvEEclEv$c303f2d2360db58ed70a2d0ac7ed911b+524)
  #00  pc 000000000039d928  /system/lib64/libhwui.so (android::uirenderer::WorkQueue::process()+208)
  #00  pc 00000000003bfb44  /system/lib64/libhwui.so (android::uirenderer::renderthread::RenderThread::threadLoop()+88)
  #00  pc 000000000001553c  /system/lib64/libutils.so (android::Thread::_threadLoop(void*)+320)
  #00  pc 0000000000014db0  /system/lib64/libutils.so (thread_data_t::trampoline(thread_data_t const*)+408)
  #00  pc 00000000000b61f4  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+64)
  #00  pc 0000000000050e24  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)
type or paste code here
1 Like

I’m also receiving this issue after upgrading to React Navigation x5.0.

Everything works great on iOS, but for Android, navigation from exclusively one screen in our project (the initialRoute) to most of the other screens will cause a crash.

Outside of that screen, a user can access the screens which will cause a crash through a navigation path on a different screen, such as the Menu.

Try Crash SkSurface::getCanvas in android 10(Q) · Issue #9067 · react-navigation/react-navigation · GitHub Crash is due to WebView.

The crash is maybe for WebView in android. In my have I have fixed it with by putting androidHardwareAccelerationDisabled to true. Here
.
Check it out Github issue.