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

使用Drawer Navigator时React Native(Expo)安卓打包后崩溃求助

React Native Expo打包安卓APK后启动崩溃排查方案

核心问题分析

从你的配置和代码来看,主要是依赖版本冲突和React Native Reanimated未正确配置导致的打包后崩溃——Expo Go会自动兼容部分依赖问题,但打包成独立APK时这些问题会直接暴露。

具体解决步骤

1. 移除冲突的导航依赖

你的package.json中同时存在react-navigation@5和@react-navigation/*@6,两个版本完全不兼容,会引发运行时错误。执行命令移除旧版本:

npm uninstall react-navigation
# 或使用yarn:yarn remove react-navigation

重新安装依赖:

npm install
# 或 yarn install

2. 配置React Native Reanimated的Babel插件

抽屉导航依赖react-native-reanimated,打包时必须在Babel配置中添加该插件,否则会直接崩溃。
在项目根目录的babel.config.js中修改配置(无此文件则新建):

module.exports = function(api) {
  api.cache(true);
  return {
    presets: ['babel-preset-expo'],
    plugins: ['react-native-reanimated/plugin'],
  };
};

⚠️ 注意:该插件必须放在所有其他插件的最后位置,否则会引发异常。

3. 清理缓存并重新打包

执行命令清理Expo和npm缓存:

expo r -c
npm cache clean --force

重新构建安卓APK:

eas build --profile preview --platform android

4. 验证Test组件的正确性

确保./page/Test.js无语法错误或异常逻辑,可先简化为基础组件测试:

import { View, Text } from 'react-native';

export default function Test() {
  return (
    <View style={{flex:1, justifyContent:'center', alignItems:'center'}}>
      <Text>Test Page</Text>
    </View>
  );
}

5. 查看崩溃日志(精准定位)

若以上步骤未解决问题,可通过Android Studio查看设备崩溃日志:

  • 连接真机或启动模拟器
  • 打开Android Studio的Logcat面板
  • 筛选应用包名,查看崩溃时的错误堆栈,直接定位问题根源

内容的提问来源于stack exchange,提问作者Hamid Reza Kiyani

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 21:44:55