我正在使用 React.JS,当我插入设备执行 react-native run-android时,我看到一个空白页面。当我摇动设备并从选项列表中选择 Debug JS Remotely时,我看到如下屏幕。
react-native run-android
Debug JS Remotely
仅供参考:
OS: Ubuntu 16.04 Node version is: v4.6.2 java version "1.8.0_111" react": "15.4.1 react-native": "0.38.0
确保提供捆绑包的节点服务器在后台运行。要运行启动服务器,请使用 npm start或 react-native start,并在开发期间保持选项卡处于打开状态
npm start
react-native start
我用 adb reverse tcp:8081 tcp:8081和 reload解决了这个问题。
adb reverse tcp:8081 tcp:8081
reload
在我的例子中,选择 远程调试 JS启动了 Chrome,但是没有连接到 Android 设备。通常,新的 Chrome 选项卡/窗口将在地址栏中预填充调试 URL,但是在这种情况下,地址栏是空白的。超时时间过后,将显示“ Unable to connect with remote debug”错误消息。我通过以下步骤解决了这个问题:
http://localhost:8081/debugger-ui
这应该可以解决问题。如果不行,你可能需要采取以下额外的步骤:
我的情况是,当我点击启用远程 JS 调试,它会启动 chrome,但不能连接到它。
我试图逃跑:
,但没有工作。
我完全卸载了我的铬合金,并安装了一个新的。它的工作。
在我的例子中,问题是模拟器正在请求:
http://10.0.2.2:8081/debugger-ui
而不是:
http://localhost:8081/debugger-ui和请求失败。
解决问题: 在模拟器上启用远程调试之前,打开 http://localhost:8081/debugger-ui在铬。然后启用远程调试并返回到 chrome 页面,在那里您应该可以看到控制台日志。
解决了以下问题:
Cmd + M
Dev settings > Debug server host & port for device
localhost:8081
调试器已连接!
我做了@sajib 的回答,并使用这个脚本重定向端口:
#!/usr/bin/env bash # packager adb reverse tcp:8081 tcp:8081 adb -d reverse tcp:8081 tcp:8081 adb -e reverse tcp:8081 tcp:8081 echo "🚧 React Native Packager Redirected 🚧"
我也遇到过类似的问题,所以才会想到这个问题。在我的浏览器调试器中,我收到了这个错误消息:
从原始“ http://127.0.0.1:8081”获取“ http://localhost:8081/index.delta?platform=android&dev=true&minify=false”的访问已被 CORS 策略阻止: 请求的资源上没有“ Access-Control-allow-Origin”头。如果一个不透明的响应满足您的需求,将请求的模式设置为“ no-CORS”,以便在禁用 CORS 的情况下获取资源。
我花了一段时间才意识到我在调试器中使用的是 127.0.0.1:8081而不是 localhost:8081。
127.0.0.1:8081
为了解决这个问题,我只需要把 Chrome 从:
http://127.0.0.1:8081/debugger-ui/
到
http://localhost:8081/debugger-ui/
卸载您的应用程序,然后运行反应-本机运行-机器人。然后点击调试端代替 http://localhost:8081/debugger-ui/,端运行反应-本机运行-机器人。如果你还没有成功,再试一次
所以你可以逃跑:
包括所有令人印象深刻的答案专家开发人员特别提供的 Ribamar Santos,如果你没有得到它的工作,你必须检查更棘手的东西!
Ribamar Santos
类似 Airplane mode的(仿真)手机!或者你的 network status of Emulator(Data status and Voice status on Cellular tab of Emulator configuration)可能被操纵不表达网络!来满足一些模拟需求!
Airplane mode
network status of Emulator
Data status and Voice status on Cellular tab of Emulator configuration
我已经克服了这个问题的这个把戏! 这是一个有点惊人的调试找到这个洞!
在我的例子中,它还需要安装它的 npm 包
所以
npm install react-native-debugger -g
在 AndroidManifest.xml 中,我需要添加 usesCleartextTraffic:
<application ... android:usesCleartextTraffic="true">
不过,您可能不希望在应用程序的生产版本中保留这一点,除非您希望支持不安全的 http 请求。
在我将其添加到 AndroidManifest.xml 之后,然后按照 Tom Aranda 的回答,模拟器最终能够连接到调试器。
再加上这个
包裹 Json
devDependencies: { //... "@react-native-community/cli-debugger-ui": "4.7.0" }
终结一切。
npm install
npx react-native start
npx react-native run-android
参考资料: https://github.com/react-native-community/cli/issues/1081#issuecomment-614223917
故障排除使用 React Cli 和 Type/js (Android 模拟器)进行本地反应
4.默认情况下,开发服务器在8081端口上运行。运行“反应-原生启动”,然后在浏览器上检查“ http://localhost:8081”和“ http://yourip:8081”是否有效。如果是的话 在 Android 仿真器中打开应用程序(反应-本机 run-Android)
4.B 如果 http://localhost:8081不工作,那么一旦成功执行,就运行 response-national port = 8088(或任何端口)。检查浏览器的 http://localhost:8088和 http://yourip:8088。是,然后在 Android 模拟器中打开应用程序(反应-本机运行-Android)
YourIPAddress: 打开命令提示符-> 写入‘ ipconfig’-> 拷贝 IPv4地址
至于我自己的情况,我正在使用博览会去,我的仿真器和我的 Android 手机,它给我这个错误。
译者: 如果您使用 expo cli 创建的应用程序使用了一些 expo 不支持的本机代码或库,请尝试以下命令,以防其他解决方案不起作用。
npx expo run:android
医生
我的设想是:
我试图运行我的一个旧的世博会应用程序,从 Android 工作室构建的应用程序,并面临这个问题。上面提到的其他解决方案都不起作用。当我试图使用 Expo Go 扫描 QR 时,我知道了错误。因为我使用了反应原生 mmkv,所以我不能使用 expo-cli,我必须弹出。所以我运行了 npx expo run:android,一切开始正常运行。
解决办法是清除世博会应用数据来解决这个问题。参考文献: 如何在本机反应中禁用远程 JS 调试