React Native 版本不匹配。本机 0.54.4 和 Javascript 0.52
Posted
技术标签:
【中文标题】React Native 版本不匹配。本机 0.54.4 和 Javascript 0.52【英文标题】:React Native version mismatch. Native 0.54.4 and Javascript 0.52 【发布时间】:2018-05-08 12:46:51 【问题描述】:经过两天的研究,我希望有人能在正确的方向上解决我的问题。 升级 RN 版本后,尝试在 android 上执行时出现该错误: error on android
由于库依赖关系,我需要那个版本的 RN(我可以上下更改 RN 版本),并且我会不断更新 package.json 和 app.json https://github.com/react-community/create-react-native-app/blob/master/VERSIONS.md 上的 expo 版本。
但我无法更新 javascript 版本。它来自哪里?
除此之外,在 ios 上运行正常。有什么解决办法吗?
谢谢!
【问题讨论】:
【参考方案1】:您可能已经从link you shared 中注意到,本机版本 0.54.x 适用于 Expo 版本 26。
错误消息告诉您,您正在使用与 Expo 的 v25 相关联的 React Native 版本。 如果你想解决这个问题,请确保你的 React Native 版本是 0.54.x,你的 Expo 版本是 26。
您也可以使用 Expo 使用的 React Native 分支:
json
"react-native": "https://github.com/expo/react-native/archive/sdk-26.0.0.tar.gz"
所有这一切都说,最新版本是 27,所以也许只是一路更新 :)
如果这是一个独立版本,请确保使用最新的本地模块对其进行更新,因为这可能是导致平台特定错误的原因。
【讨论】:
嗨,埃文,感谢您的解释。我开始认为这与android studio有关。 - 使用 expo 分支作为参数,我可以通过 QR(expo 应用程序)正确执行应用程序,但 android 编译失败。 - 使用 0.54.4 作为参数,我也可以通过 expo 应用程序正确执行,并且 android 可以正确编译,但是由于“react native version mismatch”而失败。在这两种情况下,我都使用了正确的 expo 版本 (26)。 我在 android 上有三个组件(图像选择器、地图和矢量图标)。可能与此有关?【参考方案2】:我以前遇到过这种不匹配的情况。因为我在没有关闭旧的本地开发服务器的情况下打开了一个不同的项目。所以新项目运行旧服务器不匹配。
尝试关闭服务器并再次运行您的项目。
【讨论】:
这个问题困扰了我好几天,即使在重新启动计算机之后也是如此。最后解决了强制 RN 匹配 javascript。不是一个理想的解决方案,但我没有找到方法【参考方案3】:这是由于 Android 的 React Native 版本与您的 RN 项目不同。您可以强制 Android 项目使用特定版本的 React Native,默认情况下,Android 内部文件(应用的 build.gradle)中未指定 React Native 版本。
您的应用 build.gradle 最有可能现在的样子。
compile "com.facebook.react:react-native:+"
你应该更新你的 build.gradle 的样子
compile ("com.facebook.react:react-native:<your version of RN here>")
force = true
例子
compile ("com.facebook.react:react-native:0.50.4")
force = true
如果您正在寻找应用程序 gradle 文件,它应该位于此处:RN-Project/android/app/build.gradle
这些是我为使其工作而采取的步骤。我希望这有帮助。
【讨论】:
以上是关于React Native 版本不匹配。本机 0.54.4 和 Javascript 0.52的主要内容,如果未能解决你的问题,请参考以下文章
React Native - console.error: 'React Native 版本不匹配
无法建立与 Firebase 版本不兼容的原因,并且相机反应本机
找不到与 @storybook/react-native@^5.0.6 匹配的版本