开发者问题收集

成功安装 Android React Native 后 Expo EAS 构建崩溃并消失

2022-12-03
1641

我的 expo 应用程序通常在 Expo go 上运行,即使使用下面的命令它仍然可以运行。

npx expo start --no-dev --minify

但是当使用不同的方法构建时它根本不起作用,并且出现不同的崩溃。

eas build -p android --profile preview

它生成 APK,当我拖到模拟器(android 11)时它会获得“成功安装”,所以我打开它并显示启动画面,之后它崩溃并且应用程序从设备上消失。它似乎被自动卸载了,因为我在文件中的任何地方都找不到它。

expo build: android -t apk

使用上面弃用的方法我仍然会得到“成功安装”,但它永远不会进入启动画面,只会出现白屏,并且它永远不会崩溃或从设备上消失。

我在多个设备和 android 版本上尝试过,但每次构建时我都会遇到同样的问题。所以我猜问题出在构建上。我找不到其他人有解决方案或提示。

我尝试卸载多个 npm 包以查看问题是否出在何处,但没有成功。

这是我第一次使用 React Native 和 Expo,所以我可能会遗漏一些东西。

    //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
}
3个回答

由于发布版本,在大多数情况下它会消失。在调试版本中,您必须获取正常错误屏幕(红色),在 eas.json -> 开发块中添加

"developmentClient": true

并重试。

mirik999
2022-12-03

已解决

npm i react-native-screens

并确保已将所有内容更新到最新版本,以便使用 EAS 进行构建,包括 Expo SDK、React Native、expo 和 eas CLI。

Tiago Godoy
2022-12-03

对于 iOS,此方法有效

   npm install react-native-screens
Awara Amini
2023-07-10