【问题标题】:Using Realm and Remote Debugging fails on android在 android 上使用领域和远程调试失败
【发布时间】:2017-05-30 13:31:24
【问题描述】:

在 React Native 上导入和使用 Realm 对 iOS 来说效果很好。 Android 在功能方面也可以工作,但是,在 chrome 上使用远程调试时会产生以下错误。

我几乎环顾四周,似乎没有人对此有明确的答案。这里有谁设法走出这个坑吗?远程调试非常重要,因为该应用正在处理相当复杂的对象,并且使用 react-native log-ios 对工作流程来说有点困难。

谢谢大家。

【问题讨论】:

    标签: javascript android reactjs react-native realm


    【解决方案1】:

    简单的解决方法是转到 node_modules/realm/lib/browser/rpc.js 并将第 216 行替换为 let url = 'http://127.0.0.1:8083/' + command;

    【讨论】:

    • 最后这对我有用。对于领域 10.0,更新 rpc.js 中的 sessionHost let sessionHost = '127.0.0.1:8082';
    【解决方案2】:

    您在使用 android 远程调试时遇到了已知问题,但正在解决这些问题。您可以在这里跟踪进度:https://github.com/realm/realm-js/issues/491

    【讨论】:

    • 啊,即使我们设法修复了该错误,调试在当前状态下仍然无法使用?感谢您发布有关它的信息。真可惜,感觉就像是 RN 上的理想存储解决方案(在面临 AsyncStorage 和 react-native-storage 的限制之后):( 我想我得再找点别的东西了!祝你重新调试好运部分,它看起来像是一大块工作!
    【解决方案3】:

    当我将 react native 与领域数据库一起使用时,我遇到了这个问题。我认为您需要手动端口反向和转发以避免端口冲突。当您启用调试模式时,请打开命令行并按照以下命令:

       `adb reverse tcp:8081 tcp:8081`
       `adb forward tcp:8082 tcp:8082`
    

    然后,您可以重新加载并进入调试模式。

    加油!

    【讨论】:

    • 不幸的是,我已经尝试过了:/。还有其他潜在的有用提示吗?感谢您的宝贵时间。
    • @GeorgeAvgoustis 请再试一次!
    • 我试过了。但是,它似乎与其余配置混淆了。我得到一个 adb 服务器没有响应错误。我想通过更改端口会搞砸一些事情。我在 Ubuntu 上使用谷歌提供的 android 模拟器(而不是使用 genymotion 例如)
    【解决方案4】:

    如果@johnny 的回答无效,当您键入命令时

    adb reverse tcp:8081 tcp:8081 adb forward tcp:8082 tcp:8082

    然后您会收到以下消息

    adb server is out of date.  killing...
    * daemon started successfully *
    

    也就是说你在命令行中使用的adb命令,和模拟器使用的adb工具不同。

    您可以通过检查 adb 的位置来确认(这里我在 /usr/bin 和 /home 中有两个不同的工具,它们不是经过验证的符号链接)

    42:~/pathToMyApp$ whereis adb
    adb: /usr/bin/adb /home/42/Android/Sdk/platform-tools/adb /usr/share/man/man1/adb.1.gz
    

    我尝试了两个工具的完整路径,发现模拟器正在使用 /home/... 中的 adb 工具 所以为了让它工作,我现在输入

    /home/42/Android/Sdk/platform-tools/adb reverse tcp:8081 tcp:8081;
    /home/42/Android/Sdk/platform-tools/adb forward tcp:8082 tcp:8082
    

    【讨论】:

      【解决方案5】:

      我能够在我的 pixel_3XL 模拟器 android API 级别中解决此问题:29

      重置平台工具的路径 将我的 PATH 更改为平台工具

      $ export PATH=${PATH}:/root/Android/Sdk/platform-tools
      
      $ adb kill-server
      $ adb root                      #will give root access for adb
      
      $ adb forward tcp:8082 tcp:8082 
      $ adb reverse tcp:8081 tcp:8081
      
      $ react-native run-android      #restart the server with a debugger enabled
      

      瞧,它在我的机器上工作了......祝你好运。

      另外尝试在应用程序的开发者菜单 -> 开发设置 -> 调试服务器主机和端口中手动将 ip 更改为 127.0.0.1 和端口

      【讨论】:

        【解决方案6】:

        这样做对我有用

        在终端上:

        adb reverse tcp:8081 tcp:8081
        adb forward tcp:8082 tcp:8082
        adb forward tcp:8083 tcp:8083
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多