当我初始化一个新项目,然后启动Xcode模拟器时,得到以下消息:
React-Native版本不匹配 Javascript版本0.50.1 本机版本:0.50.0 确保您已经重新构建了本机代码. ...
有谁知道这是怎么回事能帮帮我吗?
当我初始化一个新项目,然后启动Xcode模拟器时,得到以下消息:
React-Native版本不匹配 Javascript版本0.50.1 本机版本:0.50.0 确保您已经重新构建了本机代码. ...
有谁知道这是怎么回事能帮帮我吗?
当前回答
我试图从WebStorm中构建和运行一个React Native应用程序,然后遇到了这个问题。对我来说,简单的解决方案是:
watchman watch-del-all
在macOS上,如果watchman还没有安装,请使用Homebrew安装:
brew install watchman
其他回答
如果你用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
}
}
对我来说,这是由于包的依赖项部分的反应本机版本。json文件。它是:
"dependencies": {
"expo": "^27.0.1",
"react": "16.3.1",
"react-native": "~0.55.0"
}
我把它改成:
"dependencies": {
"expo": "^27.0.1",
"react": "16.3.1",
"react-native": "0.52.0"
}
现在它工作得很好。
安装一个新的模拟器和关闭所有终端,只在我从Android Studio运行时才适用。现在已经不管用了。
有点违反直觉,但我注意到,当我从Android Studio运行时,地铁捆绑终端没有启动。
所以我从终端执行npx react-native run-android(这没有工作,但它确实启动地铁捆绑器),然后我从Android Studio运行该应用程序,它工作!
当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中被跟踪。