当我初始化一个新项目,然后启动Xcode模拟器时,得到以下消息:

React-Native版本不匹配 Javascript版本0.50.1 本机版本:0.50.0 确保您已经重新构建了本机代码. ...

有谁知道这是怎么回事能帮帮我吗?


当前回答

可能的解决办法:

删除package-lock.json 执行命令watchman watch-del-all && rm -rf $TMPDIR/react-* && rm -rf $TMPDIR/ hurry -map-react-native-packager-* && rm -rf node_modules/&& npm install

如果问题仍然存在,尝试直接从Xcode执行项目

这对我很管用。

其他回答

我可以通过删除node_modules并再次运行npm install来修复这个问题

在你的android应用级别的gradle文件中,在依赖项中强制react原生版本。

compile ("com.facebook.react:react-native:0.52.0") { force = true }

为我工作

这对我来说很管用:

react-native start --reset-cache

当TypeScript类型定义不匹配时,我得到了这个类。

例如,在依赖项中react-native的值为0.61.5,在devDependencies中@types/react-native的值为0.60.0。

当我更新devDependencies时,它就工作了。不需要重启任何东西。

所有那些关于改变版本以适应我的错误的答案。

这个错误没有告诉您这个版本来自哪里。在所有文件中搜索,我发现只有1个地方定义了javascript版本: 问题是这个包(\android\app\src\main\assets\index.android.bundle)需要重新生成,因为它包含的版本比安装的包要旧。

为了重新生成该文件,我必须运行以下命令:

react-native bundle --platform android --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res

因为我已经升级了我的react-native,所以运行这个命令给了我一些需要解决的错误(主要是安装新的依赖项)。

清理缓存,在android studio中重新加载,重新加载react,重新加载终端,创建一个新项目并传输文件,运行watchman,所有这些都不能工作,因为特定的bundle文件恰好在Git repo中被跟踪。