我正在尝试使用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中调用应用程序注册表。
1条答案
按热度按时间8i9zcol21#
我看到你的
package.json
中的main
键被设置为node_modules/expo/AppEntry.js
。你的registerRootComponent
住在哪里?也许你可以尝试创建一个
index.js
文件,并将应用程序注册表行放在那里。它看起来像:然后,尝试将
main
正在查看的路径更改为index.js
所在的路径。