Expo-barcode-scanner приложение вылетает

В приложении есть отдельная страница, на которой я разместил expo-barcode-scanner. Суть в том, что при открытии именно этой страницы, на которой находится камера - приложение тут же вылетает. На консоль никаких ошибок не выводится. Код самого сканера брал из офф. документации.

При этом:

  • Неважно, делаю я это через компонент "Camera" или через компонент "BarCodeScanner", всё равно вылетает
  • Если передавать в onBarcodeScanned = undefined, то сама камера работает и запускается, но как только onBarcodeScanned = handleBarCodeScanned - программа сразу крашится.

Пробовал править ZxingBarCodeScanner.kt по этой инструкции (https://github.com/expo/expo/issues/15309), перезагрузил приложение - изменений нет, всё так же вылетает

LOGCAT: Вывод из adb logcat

const AdminScreen = ({navigation}) => {
  const [hasPermission, setHasPermission] = useState(null);
  const [scanned, setScanned] = useState(true);
  const [cameraReady, setCameraReady] = useState(false);

  useEffect(() => {
    (async () => {
      const { status } = await BarCodeScanner.requestPermissionsAsync();
      setHasPermission(status === 'granted');
    })();
  }, []);
  
  const onCameraReady = () => {
    setCameraReady(true)
    console.warn("Camera ready")
  }

  const handleBarCodeScanned = ({ type, data }) => {
    if (cameraReady){
      setScanned(true);
      alert(`Bar code with type ${type} and data ${data} has been scanned!`);
    }
  };

  if (hasPermission === null) {
    return <Text>Requesting for camera permission</Text>;
  }
  if (hasPermission === false) {
    return <Text>No access to camera</Text>;
  }

  return (
    <View
    style={{
      flex: 1,
      resizeMode: 'cover',
    }}>
      <Camera
        onCameraReady={onCameraReady}
        barCodeTypes={[BarCodeScanner.Constants.BarCodeType.qr]}
        onBarCodeScanned={scanned ? undefined : handleBarCodeScanned}
        style={{
          flex:1
        }}
      />
      {scanned && <Button title={'Tap to Scan Again'} onPress={() => setScanned(false)} />}
    </View>
  );
}

P.S: Не исключаю, что ошибка максимально очевидная и тупая, начал учить реакт и js буквально неделю назад, могу легко что-то упустить


Ответы (0 шт):