24

React Native 应用在真机上调试存在一些问题;

我的地铁捆绑器控制台发出警告:

warn No apps connected. Sending "reload" to all React Native apps failed. Make sure your app is running in the simulator or on a phone connected via USB.

警告并导致真正的 IOS 设备连接问题。

当我尝试从 Chrome React Native Debugger 重新加载我的 react native 应用程序时,它给出了上述警告,我无法在 Chrome 上调试我的代码

反应原生:0.62.2,

IOS:13.6

它发生在真实设备连接上。当我使用IOS模拟器时,没有问题。

注意:我的手机和 macbook 在同一个 wi-fi 网络上。

所以问题与不同的 wi-fi 网络使用无关。

4

17 回答 17

24

⚠️ iOS 用户:

检查您的构建目标是否为 Debug :

Xcode Product => Scheme => Edit Scheme => Debug(而不是发布!)

⚠️ 安卓用户:

我找到了我在 github 上发布的解决方案。不是最好的,但它可能很有用:

首先,您必须打开MainApplication.java 并删除import com.facebook.react.BuildConfig;

接下来,按照以下步骤操作:

    # Reset metro bundler cache : 
    `npx react-native start --reset-cache`
        
    # Remove Android assets cache : 
    `cd android && ./gradlew clean`
        
    # Relaunch metro server : 
    `npx react-native run-android`

看到魔法

见这里: https ://github.com/facebook/react-native/issues/29396

于 2020-11-18T14:25:25.447 回答
12

运行它对我来说适用于Physical Android Device

adb reverse tcp:8081 tcp:8081

或者

npm run android-connect

如果您遇到“超过两个设备正在运行”的错误,请确保 BlueStacks 等模拟器没有运行。

于 2021-06-11T16:14:34.433 回答
11

您的 iPhone 必须与 Mac 连接到同一网络(例如 WiFi),因为它们必须相互通信(React Native Doc)。

如果已经出现这种情况,请在 iPhone 和 Mac 上手动填写DCHP服务器,使用 Google 的服务器 ( 8.8.8.8 ),因为这可能是由于 DHCP 问题。

您可能需要断开并重新连接到您的 Wifi。

于 2020-07-17T09:52:30.447 回答
7

对我来说,我需要将我的应用程序中的捆绑器位置从“localhost:8081”设置为“192.168.1.XX:8081”,这是我的计算机的本地 IP 地址,Metro 捆绑器在该地址上运行,端口为 8081。

如果您不知道您的捆绑器在哪个端口上运行,您可以将其指定为参数,例如:

npx react-native start --port 8081

然后,您需要在开发应用程序中指定位置。要做到这一点:

  • 晃动你的设备

  • 单击更改捆绑位置(我在 RN 0.64 上,可能与您的不同)

  • 给出运行 Metro 捆绑器的计算机 IP 和端口的捆绑器位置,例如:

捆绑位置更改对话框

他们开始互相交流。

于 2021-04-30T09:41:00.603 回答
6

我的问题是我的 Mac 和 Iphone 上没有连接到同一个 WiFi。我在两台设备上都关闭并重新打开了 wifi,并确保 Mac 和 Iphone 都连接到同一个 WiFi。烦人,但真实!

于 2020-09-15T09:51:20.743 回答
2

您的 iPhone 和 mac 必须连接到同一网络。如果两个设备都连接到同一个网络,您必须检查您的应用程序的本地网络可用性。(这发生在我运行 iOS 14.0 的设备上)。

检查本地网络 - iOS 14
设置 -> 隐私 -> 本地网络

于 2020-11-12T14:30:23.023 回答
2

在 Android 上,这也可能由于网络安全配置问题而发生。如果您确实使用网络安全配置,请尝试android:networkSecurityConfig="@xml/network_security_config"AndroidManifest.xml

于 2021-06-08T10:51:24.997 回答
1

我的问题是我使用的模拟器已经airplane mode打开(因为我测试了相关功能)。当我关闭它时问题解决了,从而使网络能够照常运行。

于 2020-10-01T17:18:40.287 回答
0

我的问题是设备没有连接到互联网。抛出错误。尝试连接稳定的互联网连接。

于 2021-02-19T03:37:13.817 回答
0

我尝试了一切,运行后

adb reverse tcp:8081 tcp:8081
yarn android 

有效。

于 2022-01-06T22:56:02.397 回答
0

当我删除network_security_config.xml并删除以下内容时:

  `android:networkSecurityConfig="@xml/network_security_config"`

有用

于 2021-09-13T12:15:17.907 回答
0

对于 Xcode 上的 iOS:

转到窗口 > 设备和模拟器,转到“已安装的应用程序”部分,单击 +,选择您的应用程序,运行您的代码。

(当我从设备上卸载应用程序后运行应用程序时发生了这个问题)

于 2022-01-06T00:33:41.290 回答
0

您必须在 iOS 的应用程序设置中允许本地网络。否则,即使在同一个网络中,Metro 也无法找到您的应用。

于 2021-08-03T05:21:26.703 回答
0

对我来说,解决方案是删除已安装的应用程序并再次在 Xcode 中运行。

于 2022-01-19T10:38:32.710 回答
0

对我来说诀窍如下:在 Xcode 中从 YourAppName 转到 Debug/Detach 然后通过转到 Debug/Attach to Process 重新附加它,从列表中选择您的应用程序(通常是顶部的第一个条目)。

于 2021-07-03T14:13:51.743 回答
0
yarn start web

您可以使用此命令扫描二维码并在您的移动设备上查看您 EXPO 应用程序中的应用程序

于 2020-12-08T05:29:38.363 回答
-1

我的问题是我添加了 --variant=release

npx react-native run-android --variant=release

所以我删除它并为我工作。像这样:

npx react-native run-android
于 2020-12-12T08:13:38.860 回答