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

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

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


当前回答

我有同样的问题,而建立我的react原生应用程序的android和我做了以下工作。

错误控制台中“JavaScript版本0.50.1”是包中的react-native版本。json文件。确保它与错误控制台中“本机版本0.50.0”的版本相同。

我已经在错误控制台中按照提示将react-native版本更新为“Native version 0.50.0”。 重新构建应用react-native run-android。

其他回答

如果你用create-react-native-app创建react-native-app。你应该有一个app.json (expo)。还有一个包裹。Json文件,检查世博版本是否匹配并相应更改。例如,在我的案例中,问题是在app.json文件中,我有一个25.0.0版本的expo sdkVersion属性,我将其更改为23.0.0,一切正常工作。

package.json:

"dependencies": {
    "expo": "^23.0.4",
    "react": "16.0.0",
    "react-native": "^0.50.4"
  }

app.json:

{
  "expo": {
    "sdkVersion": "23.0.0" // before was 25.0.0
  }
}

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

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

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

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

我从stackoverflow找到了另一个问题的答案,我喜欢把它放在这里。

第一步:我改变了expo在package中的值。Json文件到最新支持的版本,根据博览会文档(访问这里)。

第二步:我将app.json文件中的sdkVersion的值更改为package.json中expo的值。(与上一步数量相等)。

如果sdkVersion在你的app.json文件中不存在,请像这样添加。 :“sdkVersion xx.x。X”(与package.json中的expo版本相同)

第三步:我在包中改变了react-native的值。根据expo文档(请访问这里),将json文件更改为与React Native Version相同的值。

对于我的情况下,我在iOS上面临它,我试图重置和清除所有缓存使用以下命令,但失败了,尽管许多评论说,根本原因是有react打包器在某处意外运行,我重新启动了我的mac,问题仍然存在。

watchman watch-del-all && rm -rf node_modules/ && yarn cache clean && yarn install && yarn start --reset-cache

解决方案是,删除build文件夹@ /ios/build,然后执行react-native run-ios解决了它