以下是我对此所做的:
关闭所有终端并重新运行构建。
你可能会忘记关闭来自另一个项目的nodejs终端,并且它们恰好安装了不同的react版本。
因此,代码从nodejs服务器获取的内容与本机内容冲突。
如果您使用create-react-native-app创建了React Native应用程序,您应该有一个app.json (expo)和一个package.json文件,请检查expo版本是否匹配并进行相应更改。例如,在我的情况下,问题在于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
}
}
只需前往android/app/build.gradle
文件,然后在dependencies
部分添加以下内容:
dependencies{
compile ("com.facebook.react:react-native:0.50.3") { force = true }
}
React Native版本可以在package.json中找到。
dependencies
部分强制指定 React Native 版本。compile ("com.facebook.react:react-native:0.52.0") { force = true }
对我有用
npm start -- --reset-cache
,然后运行了 react-native run-android
。 - Florin Dobrepackage.json
中)升级到与您的React Native版本兼容的版本(如果存在兼容的版本,否则可能不是这种情况 - 根据链接的问题,我认为Expo支持落后于React Native发布)。create-react-native-app
项目中的react native版本,但我发现并非所有版本的Expo都支持最新的React Native。app.json
和package.json
文件以匹配相应的版本,并运行npm install
,一切都恢复正常了。我正在使用一个物理设备,在我的情况下,这解决了问题:
lsof -i :8081
kill -9 PID
react-native run-android
或react-native run-ios
)lsof -i:8081
中的所有PID并重新构建即可解决问题。 - Ronan Boiteauimplementation ("com.facebook.react:react-native:0.51.0") {
force = true;
}
请在您的package.json文件中将0.51.0
替换为相应的版本。
build.gradle
中强制使用 React 依赖版本起作用了。感谢 @Val。 - jake oliver