当我初始化一个新项目,然后启动Xcode模拟器时,得到以下消息:
React-Native版本不匹配 Javascript版本0.50.1 本机版本:0.50.0 确保您已经重新构建了本机代码. ...
有谁知道这是怎么回事能帮帮我吗?
当我初始化一个新项目,然后启动Xcode模拟器时,得到以下消息:
React-Native版本不匹配 Javascript版本0.50.1 本机版本:0.50.0 确保您已经重新构建了本机代码. ...
有谁知道这是怎么回事能帮帮我吗?
当前回答
对于使用monorepo运行的我来说,在yarn.lock中有一个隐藏的react-native版本。它不存在于任何包装中。Json,但从未被删除。
我从yarn中删除了特定的react-native版本。锁上,又做了一个
yarn install
这清理了很多旧的东西,并确保一切正常工作。
其他回答
安装一个新的模拟器和关闭所有终端,只在我从Android Studio运行时才适用。现在已经不管用了。
有点违反直觉,但我注意到,当我从Android Studio运行时,地铁捆绑终端没有启动。
所以我从终端执行npx react-native run-android(这没有工作,但它确实启动地铁捆绑器),然后我从Android Studio运行该应用程序,它工作!
我有这个问题很长一段时间了,上面的解决方案都没用。我在一个create-react-native-app项目中升级react native,直到我发现不是所有版本的Expo都支持最新的react native。
在文档中找到了这个页面的链接,其中显示了官方支持的React Native, React和Expo的版本组合:
来源:https://github.com/react-community/create-react-native-app/blob/master/VERSIONS.md
编辑app.json和包。Json文件来匹配相应的版本,运行NPM install可以让一切恢复正常。
关闭nodejs终端,重新构建。
所有那些关于改变版本以适应我的错误的答案。
这个错误没有告诉您这个版本来自哪里。在所有文件中搜索,我发现只有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中被跟踪。
如果你通过Expo运行React Native应用程序,升级React Native很容易导致这个错误(如https://github.com/expo/expo/issues/923所述)。
如果这是你的情况,你的选择是:
Bump Expo(在你的package.json中列出)到一个与你的React Native版本兼容的版本(如果有的话,可能不是这样——根据链接的问题判断,我认为Expo支持落后于React Native版本)。 放弃你的更改,删除并重新安装你的Node模块,从Expo中弹出,然后(在检查你仍然可以运行你的应用程序后弹出)再次尝试升级。