Expo EAS构建安卓APK安装成功后崩溃消失问题求助
Expo Android构建异常问题排查方案
一、EAS构建APK启动崩溃消失问题解决步骤
- 补充Android权限:在
app.json的expo.android字段中添加必要权限,比如网络权限(因项目用到pocketbase):"android": { // ...其他原有配置 "permissions": ["INTERNET"] } - 获取崩溃日志:执行
adb logcat *:E命令查看应用启动时的错误日志,精准定位崩溃根源(如未处理异常、资源加载失败等)。 - 调整更新配置:将
app.json中updates.fallbackToCacheTimeout从0改为3000,避免因无法获取更新直接触发崩溃。 - 排查依赖兼容性:临时移除
react-native-restart包后重新构建,该包在EAS构建环境中可能存在兼容性问题。
二、旧expo build:android白屏问题解决步骤
- 验证闪屏资源:确认
assets/splash.png文件存在、格式正确,旧构建工具对资源路径大小写敏感,需与配置完全匹配。 - 禁用expo-updates:在
app.json的expo.updates中添加"enabled": false,或临时移除expo-updates依赖,旧构建方式下该模块可能导致加载异常。 - 检查入口配置:确认
package.json的main字段指向正确入口文件,若主文件是App.js,可改为"main": "App.js"测试。
附用户提供的配置文件:
// app.json { "expo": { "name": "tv_box", "slug": "tv_box", "version": "1.0.0", "orientation": "landscape", "icon": "./assets/icon.png", "userInterfaceStyle": "light", "splash": { "image": "./assets/splash.png", "resizeMode": "contain", "backgroundColor": "#ffffff" }, "updates": { "fallbackToCacheTimeout": 0 }, "assetBundlePatterns": [ "**/*" ], "ios": { "supportsTablet": true }, "android": { "adaptiveIcon": { "foregroundImage": "./assets/adaptive-icon.png", "backgroundColor": "#FFFFFF" }, "package": "com.test.tv_box" }, "web": { "favicon": "./assets/favicon.png" }, "extra": { "eas": { "projectId": "4b9e5710-cdd0-4e3a-846d-3faed6c56510" } } } }
// eas.json { "cli": { "version": ">= 2.8.0" }, "build": { "development": { "developmentClient": true, "distribution": "internal" }, "preview": { "distribution": "internal" }, "production": {} }, "submit": { "production": {} } }
// package.json { "name": "tv_box", "version": "1.0.0", "main": "node_modules/expo/AppEntry.js", "scripts": { "start": "expo start", "android": "expo start --android", "ios": "expo start --ios", "web": "expo start --web" }, "dependencies": { "@react-native-async-storage/async-storage": "^1.17.10", "@react-navigation/stack": "^6.3.2", "expo": "~46.0.7", "expo-status-bar": "~1.4.0", "expo-system-ui": "~1.3.0", "expo-updates": "~0.14.7", "pocketbase": "^0.7.4", "react": "18.0.0", "react-native": "0.69.6", "react-native-gesture-handler": "~2.5.0", "react-native-restart": "^0.0.24", "react-native-vector-icons": "^9.2.0", "expo-av": "~12.0.4" }, "devDependencies": { "@babel/core": "^7.12.9" }, "private": true }
内容的提问来源于stack exchange,提问作者Tiago Godoy
相关产品推荐
相关产品推荐

