You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native Expo安卓生产环境崩溃且Sentry无法捕获异常

React Native Expo 安卓生产环境调用setItems触发崩溃问题

已查阅Stack Overflow平台所有相关同类问题,现有公开方案均未解决当前问题。

问题触发相关代码

const fetchApi = useCallback(async () => {
  setIsLoading(true);

  if (activePortfolioId) {
    try {
      const response = await getApis().portfoliosApi.getPortfolioOverviewById(
        activePortfolioId
      );
      if (response.data && response.data?.tickers?.length) {
        setItems(handleListItems(response.data.tickers));
      }
    } catch (error) {
      Sentry.Native.captureException(error);
      Sentry.Native.captureMessage('HELLO?');
      Alert.alert(
        'Sorry!',
        'We were unable to retrieve the performance list. Please try again later.'
      );
    } finally {
      setIsLoading(false);
    }
  }
}, [activePortfolioId]);

故障现象

  • iOS端全场景运行正常:无论开发/生产环境、真机/模拟器均无异常,从未触发catch错误分支
  • 安卓端存在明确环境差异:Expo开发环境、执行expo start --no-dev --minify命令模拟生产环境时均无报错,但正式生产环境下打开对应页面时,加载状态可正常触发、接口请求完成后会直接进入catch分支弹出错误提示,随后应用崩溃,退回冻结的启动页

异常捕获情况

项目已接入Sentry实现全链路异常捕获,但未捕获到本次崩溃的相关日志,仅记录到1条无关错误:

Could not open URL 'https://XXXXXXX': No Activity found to handle Intent { act=android.intent.action.VIEW dat=https://XXXXXXX... flg=0x10000000 }

该错误对应登录页的链接跳转逻辑,测试复现过程中从未触发对应操作,确认与本次崩溃无关联。

已尝试排查方案

  • 移除接口调用逻辑,直接执行setItems赋值列表数据
  • 排查handleListItems数据处理函数,直接写入固定测试对象完成setItems赋值
  • 检查renderItem列表渲染逻辑,移除所有第三方styled组件,改用React Native原生组件实现

以上方案均未解决问题,仅当完全不执行setItems逻辑时,崩溃不再复现。

补充说明

项目基于TypeScript开发,已排除undefined取值等基础类型错误,现征集有同类问题排查经验的开发者提供可行解决思路。

内容的提问来源于stack exchange,提问作者Rodrigo Schneider

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 23:01:10