首页 > 解决方案 > Expo - 在物理设备上运行时独立 APK 崩溃;在 expo-cli 上运行的应用程序

问题描述

首先,我是 react-native 的新手,所以请原谅我缺少有关故障排除的知识。

我使用 Expo 构建了一个基本应用程序,当我运行expo start并扫描 QR 码以在我的物理设备上运行它时,它运行得非常好。

然后expo build:android我在终端中运行并选择 apk 来创建一个 apk 文件。它会安装,但是当我尝试在手机上打开该应用程序时,它会立即崩溃。我不确定为什么会发生这种情况,或者如何解决它。

我采取的一些步骤:

这是我的 app.json 文件:

{
  "expo": {
    "name": "FactApp",
    "slug": "FactApp",
    "sdkVersion": "37.0.0",
    "platforms": [
      "ios",
      "android",
      "web"
    ],
    "version": "1.0.0",
    "orientation": "portrait",
    "icon": "./assets/icon.png",
    "splash": {
      "image": "./assets/splash.png",
      "resizeMode": "contain",
      "backgroundColor": "#ffffff"
    },
    "android": {
      "package": "com.kmdevops.factapp",
      "versionCode": 2,
      "config": {
        "googleMobileAdsAppId": "ca-app-pub-7529073010403742/8555991419"
      }
    },
    "updates": {
      "fallbackToCacheTimeout": 0
    },
    "assetBundlePatterns": [
      "**/*"
    ],
    "ios": {
      "supportsTablet": true,
      "bundleIdentifier": "com.yourcompany.yourappname",
      "buildNumber": "1.0.0"
    },
    "description": ""
  }
}

这是我的 package.json 文件:

{
  "main": "node_modules/expo/AppEntry.js",
  "scripts": {
    "start": "expo start",
    "android": "expo start --android",
    "ios": "expo start --ios",
    "web": "expo start --web",
    "eject": "expo eject"
  },
  "dependencies": {
    "@react-native-community/masked-view": "0.1.6",
    "@react-navigation/native": "^5.5.1",
    "expo": "^37.0.12",
    "expo-ads-admob": "~8.1.0",
    "expo-linear-gradient": "~8.1.0",
    "react": "~16.9.0",
    "react-dom": "~16.9.0",
    "react-native": "https://github.com/expo/react-native/archive/sdk-37.0.1.tar.gz",
    "react-native-gesture-handler": "~1.6.0",
    "react-native-reanimated": "~1.7.0",
    "react-native-safe-area-context": "0.7.3",
    "react-native-screens": "~2.2.0",
    "react-native-web": "~0.11.7",
    "react-navigation": "^4.3.9",
    "react-navigation-stack": "^2.7.0",
    "react-navigator": "0.0.0-0"
  },
  "devDependencies": {
    "babel-preset-expo": "~8.1.0",
    "@babel/core": "^7.8.6"
  },
  "private": true
}

任何帮助将不胜感激!

标签: react-nativeapkreact-native-androidexpo

解决方案


所以我用 expo-cli 创建了一个全新的应用程序,结果 APK 崩溃了,所以我认为这是 expo 的问题。我使用 react-native cli 为这个应用程序创建了一个 apk,它可以正常工作


推荐阅读