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

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

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


当前回答

关闭js服务器终端,再次运行build

其他回答

对于那些无法通过关闭和重建来修复的Android开发人员,在模拟器/设备上手动卸载应用程序。

如果你通过Expo运行React Native应用程序,升级React Native很容易导致这个错误(如https://github.com/expo/expo/issues/923所述)。

如果这是你的情况,你的选择是:

Bump Expo(在你的package.json中列出)到一个与你的React Native版本兼容的版本(如果有的话,可能不是这样——根据链接的问题判断,我认为Expo支持落后于React Native版本)。 放弃你的更改,删除并重新安装你的Node模块,从Expo中弹出,然后(在检查你仍然可以运行你的应用程序后弹出)再次尝试升级。

这尤其适用于Android Studio 3.2或更新的用户,因为这在升级之前似乎没有发生。

如果你没有在你的配置(包)中更改React Native的版本。),版本不匹配的问题可能来自于检出git中的另一个提交后对项目文件的未检测到的更改。要克服这个问题,请确保:

清洁构建:构建>清洁项目 用Gradle文件同步项目:在导航栏上的“停止”按钮旁边 制作项目:导航栏中第一个带有锤子图标的按钮 最后运行/调试应用程序

这也将克服会话“应用程序”:错误安装APK错误,可能发生由于即时运行,一旦应用程序从设备上卸载。

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

这个错误没有告诉您这个版本来自哪里。在所有文件中搜索,我发现只有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中被跟踪。

我们所做的修正是确保在构建之前设置ANDROID_HOME和PATH变量。

首先,运行以下两个命令,然后为设备构建应用程序。

export ANDROID_HOME=/Users/username/MyFiles/applications/androidsdk
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools