firebase React原生应用程序可以与Expo Go一起使用,但不能转换为APK

lvjbypge  于 2023-10-22  发布在  React
关注(0)|答案(1)|浏览(114)

我正在尝试使用expo创建一个简单的项目。
下面是我的App.js代码:

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


const YourApp = () => {
  return (
    <View
      style={{
        flex: 1,
        justifyContent: 'center',
        alignItems: 'center',
      }}>
      <Text>Try editing me! 🎉</Text>
    </View>
  );
};

export default YourApp;

当我运行npx expo start并通过扫描QR码在手机中运行程序时。但是当我使用eas build -p android --profile preview编译程序并安装程序时,应用程序崩溃了(在我的android手机和android平板电脑中都有)。
以下是我的app.json

{
  {
  "expo": {
    "name": "v5",
    "extra": {
      "eas": {
        "projectId": "4fc3529c-f92f-43aa-bc19-8f72f43e14a5"
      }
    }
  }
}

我的package.json

{
  "name": "push-notification",
  "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": {
    "expo": "~49.0.13",
    "expo-status-bar": "~1.6.0",
    "firebase": "^10.4.0",
    "metro-core": "^0.79.1",
    "react": "18.2.0",
    "react-native": "0.72.5",
    "react-native-onesignal": "^5.0.1",
    "react-native-screens": "~3.22.0",
    "react-native-safe-area-context": "4.6.3"
  },
  "devDependencies": {
    "@babel/core": "^7.20.0"
  },
  "private": true
}

这是一个bug:

Invariant Violation: "main" has not been registered. This can happen if:
* Metro (the local dev server) is run from the wrong folder. Check if Metro is running, stop it and restart it in the current project.

我已经搜索了以前关于这个问题的主题,没有找到有用的答案。从头开始这个项目没有帮助。
提前感谢!
我从头开始一个项目,并尝试在main中调用应用程序注册表。

8i9zcol2

8i9zcol21#

我看到你的package.json中的main键被设置为node_modules/expo/AppEntry.js。你的registerRootComponent住在哪里?
也许你可以尝试创建一个index.js文件,并将应用程序注册表行放在那里。它看起来像:

import { registerRootComponent } from 'expo';
import YourApp from './src/YourApp';

registerRootComponent(YourApp);

然后,尝试将main正在查看的路径更改为index.js所在的路径。

相关问题