React Native 版本不匹配
React Native version mismatch
当我初始化一个新项目然后启动 Xcode 模拟器时收到以下消息:
React-Native Version Mismatch
Javascript Version 0.50.1
Native version: 0.50.0
Make sure you have rebuilt the native code. ...
有谁知道这里发生了什么并且可以帮助我吗?
我以前从未见过这个错误,但每当我无法让 Xcode 和 React-Native 很好地协同工作时,我都会做一些事情。检查我正在使用的 Xcode 版本。如果需要更新,我会更新它。然后清除守望者和缓存是我去的第二个地方。我不使用重置缓存命令。它总是说我需要验证缓存,所以我跳过它(不过你可以这样做,我只是感到困惑)。我使用 rm -rf $TMPDIR/react-* 来删除任何缓存的构建。如果这不起作用,我会尝试在 Xcode 中构建应用程序,然后从那里开始,使用 react-native 运行-ios 构建它。对于此错误消息,您似乎可以从尝试使用 Xcode 构建它开始。希望能有所帮助...让我知道您的进展情况。祝你好运! (另外,您可以更新到 RN 0.51 作为同步版本的另一种尝试。)
这是我用它完成的:
Close all terminals and run build again.
你可能忘记关闭来自另一个项目的nodejs终端,他们恰好安装了不同的react版本。
所以从nodejs服务器端抓取的代码和原生的有冲突
如果您运行通过 Expo 安装 React Native 应用程序,升级 React Native 可能会导致此错误(如 https://github.com/expo/expo/issues/923 所述)。
如果这是您的情况,您的选择是:
- 将 Expo(在您的
package.json
中列出)升级到与您的 React Native 版本兼容的版本(如果 存在,这可能不是案例 - 从链接的问题来看,我认为 Expo 支持落后于 React Native 版本)。
- 放弃您的更改,从 Expo Eject 删除并重新安装您的 Node 模块,然后(在检查您仍然可以 运行 您的应用程序 post-ejection 之后)尝试您的再次升级
对于使用 CocoaPods 在 iOS 上遇到相同问题的其他人:
我尝试了上面的所有解决方案,但没有成功。我的项目中有一些具有本机依赖项的包,并且正在安装其中一些需要的 pod 模块。问题是在我的 Podfile 中指定了 React,但是 React pod 没有通过使用 react-native-git-upgrade
.
自动升级
解决方法是通过 运行 cd ios && pod install
.
升级所有已安装的 pods
如果您使用 create-react-native-app 创建了您的 react-native 应用程序。你应该有一个 app.json (世博会)。和一个 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 仅通过关闭和重建无法修复它的开发人员,请手动卸载 emulator/device 上的应用程序。
我们所做的修复是确保在构建之前设置 ANDROID_HOME 和 PATH 变量。
首先,运行 下面的两个命令然后为设备构建应用程序。
export ANDROID_HOME=/Users/username/MyFiles/applications/androidsdk
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
我遇到这个问题的时间最长,none 上述解决方案有所帮助。我正在 create-react-native-app
项目中升级 React Native,直到我发现并非所有版本的 Expo 都支持最新的 React Native。
在文档中找到链接的页面,其中显示了官方支持的 React Native、React 和 Expo 的版本组合:
来源:https://github.com/react-community/create-react-native-app/blob/master/VERSIONS.md
编辑 app.json
和 package.json
文件以匹配相应的版本,运行 npm install
使一切恢复正常。
我在使用 Expo 和 iOS 模拟器时也遇到了这个问题。对我有用的是在 Hardware > Erase All Content and Settings...
中擦除模拟器
这不是修复,但就我而言,我的设备上安装了多个 RN 应用程序,我在不知不觉中尝试从错误的应用程序中“重新加载”。 (我目前正在同时开发两个应用程序)因此请确保您在正确的应用程序中!
在您的 build.gradle 文件中添加以下内容
implementation ("com.facebook.react:react-native:0.51.0") {
force = true;
}
将0.51.0
替换为您package.json
中的版本
只需在 android 的应用程序级别 gradle 文件中的 dependencies
部分强制响应本机版本。
compile ("com.facebook.react:react-native:0.52.0") { force = true }
对我有用
只需转到您的 android/app/build.gradle
,然后添加到 dependencies
部分:
dependencies{
compile ("com.facebook.react:react-native:0.50.3") { force = true }
}
/// React Native 版本可以在 package.json
中找到
尝试将 package.json 中指定的 react-native 版本(在 dependencies - react-native 下)更改为与错误消息中显示的 'Native Version' 相同的版本。然后再运行'npm install'
我在为 android 构建我的 React 本机应用程序时遇到了同样的问题,我做了以下对我有用的事情。
错误控制台中的 "JavaScript version 0.50.1" 是 package.json
文件中的 react-native 版本。确保它与错误控制台中的 "Native version 0.50.0" 版本相同。
- 我已经按照错误控制台中的提示将 react-native 版本更新为 "Native Version 0.50.0"。
- 重建应用
react-native run-android
。
对我来说,这是由于 package.json
文件的 dependency
部分中的 react-native
版本。它是:
"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"
}
现在可以正常使用了。
还要确保在您的模拟器中启用了 wifi
就我而言,安装新的虚拟设备很有帮助。现在我每个应用使用 1 台设备。
我使用的是物理设备,就我而言,这解决了问题:
- 卸载应用程序
lsof -i :8081
kill -9 PID
- 重建应用程序(
react-native run-android
或 react-native run-ios
)
尝试重新安装依赖项。这对我有用-
1.) yarn/npm install
2.) yarn/npm start --reset-cache
打开 projectdir/android/app/build.gradle
尝试:
编译("com.facebook.react:react-native:0.51.0") { force = true }
而不是
编译 "com.facebook.react:react-native:0.51.0" { force = true }
参考:Link
可能的修复:
- 删除包-lock.json
- 运行:
watchman watch-del-all && rm -rf $TMPDIR/react-* && rm -rf $TMPDIR/haste-map-react-native-packager-* && rm -rf node_modules/&& npm install
如果问题依然存在,尝试直接从Xcode[=执行项目 25=]
这对我有用。
在我的例子中,我的 android 物理设备没有连接到我开发机器上的 js 服务器 运行。所以我必须在我的 android 设备上手动设置调试服务器主机和端口。
以我为例(不使用 expo 和 Android build)
package.json
"dependencies": {
"react": "16.3.1",
"react-native": "0.55.2"
}
和app.json
{
"sdkVersion": "27"
}
已解决问题
我试图构建 运行 来自 WebStorm 的 React Native 应用程序,运行 解决了这个问题。对我来说简单的解决方案是:
watchman watch-del-all
在 macOS 上,如果尚未安装 watchman
,请使用 Homebrew:
安装
brew install watchman
这尤其适用于 Android Studio 3.2 或更高版本的用户,因为这在升级之前似乎不会发生。
如果您没有在配置中更改 React Native 的版本 (package.json
, build.gradle
),版本不匹配的问题可能来自检出后未检测到的项目文件更改git 中的另一个提交。要克服这个问题,请确保:
清理构建:Build > Clean Project
将项目与 Gradle 个文件同步:在导航栏 Stop
按钮旁边
制作项目:导航栏中第一个带锤子图标的按钮
最后 运行 / 调试应用程序
这也可以解决 Session 'app': Error Installing APK
错误,一旦从设备上卸载应用程序,Instant 运行 可能会发生该错误。
Expo 用户 - 确保您的 app.json
sdk 版本和 package.json
expo 版本(可能相同)彼此兼容。
当您尝试 运行 而不关闭节点服务器时,有时会发生这种情况,其中之前的应用程序是 运行ning,因此请尝试重新启动 React.To 这样做,只是 运行 以下命令:
1. To kill current processes
killall node -9
2. To Start React Native
react-native start
3. Then Run android
react-native run-android
对于我的情况,我在 iOS 遇到它,我尝试使用以下命令重置并清除所有缓存但也失败了,尽管许多评论说根本原因是反应packager 运行 在某个地方不小心,我重新启动了我的 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
就解决了
关闭 nodejs 终端并重建。
我能够通过删除 node_modules 和 运行 npm install 再次解决这个问题
我已经尝试了上面的解决方案,但将其添加到 AndroidManifest.xml 似乎可以解决问题。
android:usesCleartextTraffic="true"
我更新了 react-native 版本:0.57.4 到 0.59.8,我收到以下消息 "React-Native Version Mismatch"
这个解决方案适合我:
1.- In the folder of the project, update all the code react-native in the Android Studio:
react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/
2.- Go to Android Studio and FILE->>INVALIDATE CACHES/RESTART
3.- In Android Studio, BUILD->>CLEAN PROJECT
4.- In Android Studio, BUILD->>REBUILD PROJECT
5.- Delete App in simulator or Devices
6.- Run...
希望能帮到你!
就我而言,我手动更改了 expo
版本。我遇到了同样的问题,因为我忘记在 app.json 和 babel-preset-expo[= 中更新 sdkVersion 20=] 在 package.json
之后 运行:expo r -c
清除缓存并启动应用程序。
此答案发布于 2020 年,
通过 3 个步骤修复此错误:
第一步:根据 expo 文档(访问 here),我将 package.json
文件中 expo
的值更改为最新支持的版本。
第二步:我将 app.json
文件中 sdkVersion
的值更改为 package.json
中 expo
的相同值(与上一步相同)。
第三步:根据 expo 文档(访问 here),我将 package.json
文件中 react-native
的值更改为与 React Native Version
相同的值。 =23=]
现在你可以开始了。
使用npm install
安装指定版本的依赖,然后npm start
到运行项目
这对我有用:
react-native start --reset-cache
当 TypeScript 类型定义不匹配时,我得到了这个分类。
E.G react-native
在 dependencies
中的 0.61.5 和 @types/react-native
在 devDependencies
中的 0.60.0。
我一更新 devDependencies,它就起作用了。不必重新启动任何东西。
我更新了 app.json 中的 SDK 版本以与 package.json 中的 React Native SDK 版本匹配以解决此问题
在app.json
"sdkVersion": "37.0.0",
在package.json
"react-native": "https://github.com/expo/react-native/archive/sdk-37.0.1.tar.gz",
为您的 javascript 版本编辑您的 package.json
"react-native": "^0.50.1",
在运行
之后
npm install
所有关于更改版本以匹配对我来说有问题的答案。
错误没有告诉您该版本的来源。 运行 搜索所有文件,我发现只有 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,重新加载终端,创建一个新项目并传输文件,运行ning watchman,所有这些都没有作为特定的捆绑文件工作恰好在 Git 存储库中被跟踪。
对于 运行 monorepo 的我来说,yarn.lock 里面有一个隐藏的 react-native 版本。它不存在于任何 package.json 中,但从未被删除。
我从 yarn.lock 中删除了那个特定的 react-native 版本,并做了
yarn install
这清除了很多旧东西并确保一切正常。
这对我有用
expo update 39.0.0 --npm
因为我的 expo 版本是 38(签到 package.json)。
我从 找到了答案,我想把它放在这里。
First step: I changed the value of expo in package.json file to the latest supported version, according to expo documents(visit here).
Second step: I changed the value of sdkVersion in app.json file to the same value of expo in package.json.( equal number to last step).
如果 sdkVersion
不存在于您的 app.json 文件中,请像这样添加。
"sdkVersion": "xx.x.x"
(与 package.json 中的 expo 版本相同)
Third step : I changed the value of react-native in package.json file to the same value of React Native Version , according to expo documents(visit here).
从您的设备中删除您的应用程序,然后重新安装
对于我的问题,在 API 级别低于 28 时更改模拟器时解决此问题。这个问题的根源是 API 级别 28 及以上的网络变化。通过添加
解决这个问题
<application
android:usesCleartextTraffic="true"
到androidManifest.xml
我在手动更新我的包后遇到了这个问题。
从 Expo Go
应用中删除所有项目 和 运行 expo update
自动为我解决问题。
对我来说,我不得不打开多节点 js 终端以响应本机,并且在 运行 将应用程序连接到我的 android 设备之前忘记关闭。
我关闭终端并再次 运行 并成功加载页面
安装一个新的模拟器并关闭所有曾经为我工作的终端,只有当我从 Android Studio 中 运行 时。现在它不再起作用了。
有点违反直觉,但我注意到当我从 Android Studio 运行 收到该错误时,metro bundler 终端没有启动。
所以我从终端执行了 npx react-native run-android
(这没有用,但它确实启动了 metro bundler),然后我 运行 来自 Android Studio 的那个应用程序并且它工作了!
当我初始化一个新项目然后启动 Xcode 模拟器时收到以下消息:
React-Native Version Mismatch
Javascript Version 0.50.1 Native version: 0.50.0
Make sure you have rebuilt the native code. ...
有谁知道这里发生了什么并且可以帮助我吗?
我以前从未见过这个错误,但每当我无法让 Xcode 和 React-Native 很好地协同工作时,我都会做一些事情。检查我正在使用的 Xcode 版本。如果需要更新,我会更新它。然后清除守望者和缓存是我去的第二个地方。我不使用重置缓存命令。它总是说我需要验证缓存,所以我跳过它(不过你可以这样做,我只是感到困惑)。我使用 rm -rf $TMPDIR/react-* 来删除任何缓存的构建。如果这不起作用,我会尝试在 Xcode 中构建应用程序,然后从那里开始,使用 react-native 运行-ios 构建它。对于此错误消息,您似乎可以从尝试使用 Xcode 构建它开始。希望能有所帮助...让我知道您的进展情况。祝你好运! (另外,您可以更新到 RN 0.51 作为同步版本的另一种尝试。)
这是我用它完成的:
Close all terminals and run build again.
你可能忘记关闭来自另一个项目的nodejs终端,他们恰好安装了不同的react版本。
所以从nodejs服务器端抓取的代码和原生的有冲突
如果您运行通过 Expo 安装 React Native 应用程序,升级 React Native 可能会导致此错误(如 https://github.com/expo/expo/issues/923 所述)。
如果这是您的情况,您的选择是:
- 将 Expo(在您的
package.json
中列出)升级到与您的 React Native 版本兼容的版本(如果 存在,这可能不是案例 - 从链接的问题来看,我认为 Expo 支持落后于 React Native 版本)。 - 放弃您的更改,从 Expo Eject 删除并重新安装您的 Node 模块,然后(在检查您仍然可以 运行 您的应用程序 post-ejection 之后)尝试您的再次升级
对于使用 CocoaPods 在 iOS 上遇到相同问题的其他人:
我尝试了上面的所有解决方案,但没有成功。我的项目中有一些具有本机依赖项的包,并且正在安装其中一些需要的 pod 模块。问题是在我的 Podfile 中指定了 React,但是 React pod 没有通过使用 react-native-git-upgrade
.
解决方法是通过 运行 cd ios && pod install
.
如果您使用 create-react-native-app 创建了您的 react-native 应用程序。你应该有一个 app.json (世博会)。和一个 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 仅通过关闭和重建无法修复它的开发人员,请手动卸载 emulator/device 上的应用程序。
我们所做的修复是确保在构建之前设置 ANDROID_HOME 和 PATH 变量。
首先,运行 下面的两个命令然后为设备构建应用程序。
export ANDROID_HOME=/Users/username/MyFiles/applications/androidsdk
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
我遇到这个问题的时间最长,none 上述解决方案有所帮助。我正在 create-react-native-app
项目中升级 React Native,直到我发现并非所有版本的 Expo 都支持最新的 React Native。
在文档中找到链接的页面,其中显示了官方支持的 React Native、React 和 Expo 的版本组合:
来源:https://github.com/react-community/create-react-native-app/blob/master/VERSIONS.md
编辑 app.json
和 package.json
文件以匹配相应的版本,运行 npm install
使一切恢复正常。
我在使用 Expo 和 iOS 模拟器时也遇到了这个问题。对我有用的是在 Hardware > Erase All Content and Settings...
这不是修复,但就我而言,我的设备上安装了多个 RN 应用程序,我在不知不觉中尝试从错误的应用程序中“重新加载”。 (我目前正在同时开发两个应用程序)因此请确保您在正确的应用程序中!
在您的 build.gradle 文件中添加以下内容
implementation ("com.facebook.react:react-native:0.51.0") {
force = true;
}
将0.51.0
替换为您package.json
只需在 android 的应用程序级别 gradle 文件中的 dependencies
部分强制响应本机版本。
compile ("com.facebook.react:react-native:0.52.0") { force = true }
对我有用
只需转到您的 android/app/build.gradle
,然后添加到 dependencies
部分:
dependencies{
compile ("com.facebook.react:react-native:0.50.3") { force = true }
}
/// React Native 版本可以在 package.json
中找到尝试将 package.json 中指定的 react-native 版本(在 dependencies - react-native 下)更改为与错误消息中显示的 'Native Version' 相同的版本。然后再运行'npm install'
我在为 android 构建我的 React 本机应用程序时遇到了同样的问题,我做了以下对我有用的事情。
错误控制台中的 "JavaScript version 0.50.1" 是 package.json
文件中的 react-native 版本。确保它与错误控制台中的 "Native version 0.50.0" 版本相同。
- 我已经按照错误控制台中的提示将 react-native 版本更新为 "Native Version 0.50.0"。
- 重建应用
react-native run-android
。
对我来说,这是由于 package.json
文件的 dependency
部分中的 react-native
版本。它是:
"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"
}
现在可以正常使用了。
还要确保在您的模拟器中启用了 wifi
就我而言,安装新的虚拟设备很有帮助。现在我每个应用使用 1 台设备。
我使用的是物理设备,就我而言,这解决了问题:
- 卸载应用程序
lsof -i :8081
kill -9 PID
- 重建应用程序(
react-native run-android
或react-native run-ios
)
尝试重新安装依赖项。这对我有用-
1.) yarn/npm install
2.) yarn/npm start --reset-cache
打开 projectdir/android/app/build.gradle
尝试:
编译("com.facebook.react:react-native:0.51.0") { force = true }
而不是 编译 "com.facebook.react:react-native:0.51.0" { force = true }
参考:Link
可能的修复:
- 删除包-lock.json
- 运行:
watchman watch-del-all && rm -rf $TMPDIR/react-* && rm -rf $TMPDIR/haste-map-react-native-packager-* && rm -rf node_modules/&& npm install
如果问题依然存在,尝试直接从Xcode[=执行项目 25=]
这对我有用。
在我的例子中,我的 android 物理设备没有连接到我开发机器上的 js 服务器 运行。所以我必须在我的 android 设备上手动设置调试服务器主机和端口。
以我为例(不使用 expo 和 Android build)
package.json
"dependencies": {
"react": "16.3.1",
"react-native": "0.55.2"
}
和app.json
{
"sdkVersion": "27"
}
已解决问题
我试图构建 运行 来自 WebStorm 的 React Native 应用程序,运行 解决了这个问题。对我来说简单的解决方案是:
watchman watch-del-all
在 macOS 上,如果尚未安装 watchman
,请使用 Homebrew:
brew install watchman
这尤其适用于 Android Studio 3.2 或更高版本的用户,因为这在升级之前似乎不会发生。
如果您没有在配置中更改 React Native 的版本 (package.json
, build.gradle
),版本不匹配的问题可能来自检出后未检测到的项目文件更改git 中的另一个提交。要克服这个问题,请确保:
清理构建:
Build > Clean Project
将项目与 Gradle 个文件同步:在导航栏
Stop
按钮旁边制作项目:导航栏中第一个带锤子图标的按钮
最后 运行 / 调试应用程序
这也可以解决 Session 'app': Error Installing APK
错误,一旦从设备上卸载应用程序,Instant 运行 可能会发生该错误。
Expo 用户 - 确保您的 app.json
sdk 版本和 package.json
expo 版本(可能相同)彼此兼容。
当您尝试 运行 而不关闭节点服务器时,有时会发生这种情况,其中之前的应用程序是 运行ning,因此请尝试重新启动 React.To 这样做,只是 运行 以下命令:
1. To kill current processes
killall node -9
2. To Start React Native
react-native start
3. Then Run android
react-native run-android
对于我的情况,我在 iOS 遇到它,我尝试使用以下命令重置并清除所有缓存但也失败了,尽管许多评论说根本原因是反应packager 运行 在某个地方不小心,我重新启动了我的 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
就解决了
关闭 nodejs 终端并重建。
我能够通过删除 node_modules 和 运行 npm install 再次解决这个问题
我已经尝试了上面的解决方案,但将其添加到 AndroidManifest.xml 似乎可以解决问题。
android:usesCleartextTraffic="true"
我更新了 react-native 版本:0.57.4 到 0.59.8,我收到以下消息 "React-Native Version Mismatch"
这个解决方案适合我:
1.- In the folder of the project, update all the code react-native in the Android Studio:
react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/
2.- Go to Android Studio and FILE->>INVALIDATE CACHES/RESTART
3.- In Android Studio, BUILD->>CLEAN PROJECT
4.- In Android Studio, BUILD->>REBUILD PROJECT
5.- Delete App in simulator or Devices
6.- Run...
希望能帮到你!
就我而言,我手动更改了 expo
版本。我遇到了同样的问题,因为我忘记在 app.json 和 babel-preset-expo[= 中更新 sdkVersion 20=] 在 package.json
之后 运行:expo r -c
清除缓存并启动应用程序。
此答案发布于 2020 年, 通过 3 个步骤修复此错误:
第一步:根据 expo 文档(访问 here),我将 package.json
文件中 expo
的值更改为最新支持的版本。
第二步:我将 app.json
文件中 sdkVersion
的值更改为 package.json
中 expo
的相同值(与上一步相同)。
第三步:根据 expo 文档(访问 here),我将 package.json
文件中 react-native
的值更改为与 React Native Version
相同的值。 =23=]
现在你可以开始了。
使用npm install
安装指定版本的依赖,然后npm start
到运行项目
这对我有用:
react-native start --reset-cache
当 TypeScript 类型定义不匹配时,我得到了这个分类。
E.G react-native
在 dependencies
中的 0.61.5 和 @types/react-native
在 devDependencies
中的 0.60.0。
我一更新 devDependencies,它就起作用了。不必重新启动任何东西。
我更新了 app.json 中的 SDK 版本以与 package.json 中的 React Native SDK 版本匹配以解决此问题
在app.json
"sdkVersion": "37.0.0",
在package.json
"react-native": "https://github.com/expo/react-native/archive/sdk-37.0.1.tar.gz",
为您的 javascript 版本编辑您的 package.json
"react-native": "^0.50.1",
在运行
之后npm install
所有关于更改版本以匹配对我来说有问题的答案。
错误没有告诉您该版本的来源。 运行 搜索所有文件,我发现只有 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,重新加载终端,创建一个新项目并传输文件,运行ning watchman,所有这些都没有作为特定的捆绑文件工作恰好在 Git 存储库中被跟踪。
对于 运行 monorepo 的我来说,yarn.lock 里面有一个隐藏的 react-native 版本。它不存在于任何 package.json 中,但从未被删除。
我从 yarn.lock 中删除了那个特定的 react-native 版本,并做了
yarn install
这清除了很多旧东西并确保一切正常。
这对我有用
expo update 39.0.0 --npm
因为我的 expo 版本是 38(签到 package.json)。
我从
First step: I changed the value of expo in package.json file to the latest supported version, according to expo documents(visit here).
Second step: I changed the value of sdkVersion in app.json file to the same value of expo in package.json.( equal number to last step).
如果 sdkVersion
不存在于您的 app.json 文件中,请像这样添加。
"sdkVersion": "xx.x.x"
(与 package.json 中的 expo 版本相同)
Third step : I changed the value of react-native in package.json file to the same value of React Native Version , according to expo documents(visit here).
从您的设备中删除您的应用程序,然后重新安装
对于我的问题,在 API 级别低于 28 时更改模拟器时解决此问题。这个问题的根源是 API 级别 28 及以上的网络变化。通过添加
解决这个问题<application
android:usesCleartextTraffic="true"
到androidManifest.xml
我在手动更新我的包后遇到了这个问题。
从 Expo Go
应用中删除所有项目 和 运行 expo update
自动为我解决问题。
对我来说,我不得不打开多节点 js 终端以响应本机,并且在 运行 将应用程序连接到我的 android 设备之前忘记关闭。 我关闭终端并再次 运行 并成功加载页面
安装一个新的模拟器并关闭所有曾经为我工作的终端,只有当我从 Android Studio 中 运行 时。现在它不再起作用了。
有点违反直觉,但我注意到当我从 Android Studio 运行 收到该错误时,metro bundler 终端没有启动。
所以我从终端执行了 npx react-native run-android
(这没有用,但它确实启动了 metro bundler),然后我 运行 来自 Android Studio 的那个应用程序并且它工作了!