【问题标题】:Android Emulator gives an Error SO_REUSEPORT and debugging not workingAndroid Emulator 给出错误 SO_REUSEPORT 并且调试不起作用
【发布时间】:2020-05-16 16:19:19
【问题描述】:

运行模拟器时出现以下错误,调试也不起作用,它说正在等待调试器附加。我想知道以下是否与陷入“等待调试器附加”有关。

模拟器:E0516 21:01:34.057349753 3279 socket_utils_common_posix.cc:201] 检查 SO_REUSEPORT: {"created":"@1589644894.057229268","description":"SO_REUSEPORT 编译时不可用 system","file":"/mnt/tmpfs/src/android/emu-master-dev/external/grpc/src/core/lib/iomgr/socket_utils_common_posix.cc","file_line":169}

我的android studio版本如下。

Android Studio 3.6.3 构建 #AI-192.7142.36.36.6392135,构建于 2020 年 4 月 14 日 运行时版本:1.8.0_212-release-1586-b4-5784211 amd64 虚拟机:JetBrains s.r.o 的 OpenJDK 64 位服务器虚拟机 Linux 5.4.0-29-通用 GC:ParNew、ConcurrentMarkSweep 内存:1246M 核心:4 注册表:ide.new.welcome.screen.force=true 非捆绑插件:

【问题讨论】:

  • 同样的问题,找到解决办法了吗?
  • 没有解决这个错误的方法,但我的调试现在神奇地在同一个模拟器上工作
  • 您有想过发生了什么变化吗?更新在 Ubuntu 18.4 上运行的 3.6.3 完全错误后,我遇到了同样的问题:下午 3:11 模拟器:E0524 15:11:34.211875852 15071 socket_utils_common_posix.cc:201] 检查 SO_REUSEPORT: {"created":"@ 1590347494.211844937","description":"SO_REUSEPORT 在编译系统上不可用","file":"/mnt/tmpfs/src/android/emu-master-dev/external/grpc/src/core/lib/iomgr/socket_utils_common_posix.cc ","file_line":169}
  • 3.6.3 工作正常,我刚刚更新了模拟器版本,然后开始发生这种情况

标签: android android-studio


【解决方案1】:

我遇到了这个问题。

我做出了错误的诊断。

使用以下命令从Android/Sdk/emulator/emulator 运行模拟器:

./emulator @Pixel_3_API_28 -netdelay none -netspeed full -debug all 也给了我这个错误,但它是非阻塞的。

当我:

  • 在 Ubuntu 的软件更新程序 > 设置 > 附加驱动程序中切换到专有驱动程序 (nvidia)

  • 正在重新启动

  • 重新创建我的虚拟设备。

【讨论】:

  • 您使用的是哪个版本?我遇到了同样的问题,它们是 2 个专有的 nvidia-driver-435 和 nvidia-driver-440。
  • 我使用的是nvidia-driver-440 (proprietary, tested)。 (如果相关,我有 GeForce GTX 780)
【解决方案2】:

对我来说,在出现此错误之前,该设备工作正常。

Android Studio -> 打开 AVD 管理器 -> 选择虚拟设备 -> 擦除数据为我解决了这个问题。

【讨论】:

    【解决方案3】:

    我认为这可能与 Emulator 30.0.18 (https://androidstudio.googleblog.com/2020/06/emulator-30018-canary.html) 中的修复有关。尝试使用不同的频道更新您的模拟器

    sdkmanager --channel=3 "emulator"
    

    对于“等待调试器附加”,如果有帮助,请尝试删除所有断点。

    ps:我的答案有点重复 https://stackoverflow.com/a/62793395/13891284 但不能真正标记为重复

    【讨论】:

    • 能说一下在Android Studio中怎么做吗?
    • 关注Update the IDE and SDK Tools,但我认为你不能只通过IDE为特定工具做到这一点。
    【解决方案4】:

    在了解这是 GPU 问题后,我找到了启动模拟器的方法...

    sudo ubuntu-drivers autoinstall
    

    将问题改成另一个问题:

    块引用 运行 Android 应用程序时出错 - 无法初始化 OpenglES 仿真,请使用“-gpu off”禁用它

    所以根据this issuethis answer 我将模拟设备更改为允许我为图形更改“软件-GLE 2.0”的设备,而不是选择“自动”或“硬件-GLE 2.0”(在软件中模拟图形)(并非所有设备都允许更改它) 我使用 Galaxy Nexus API 30 - R 并且仿真工作,即使我仍然有这个 SO_REUSEPORT 错误! 希望它可以帮助某人...

    【讨论】:

      【解决方案5】:

      模拟器显示安卓设置通知。一旦我点击它并设置手机,模拟器就开始为我工作。

      【讨论】:

        【解决方案6】:

        将相机选项从Emulated 切换到None 修复了for me

        【讨论】:

          【解决方案7】:

          我在 Linux 中遇到了同样的问题,因为我的笔记本电脑中有两个显卡,默认情况下我处于省电模式(英特尔)。将其切换到性能模式(Nvidia)为我解决了这个问题。

          【讨论】:

            【解决方案8】:

            问题似乎与图形设置有关 - 特别是如果您选择硬件 GPU;要么禁用 GPU,要么选择软件仿真; 从模拟器的 UI 或直接在 config.ini 文件中更改它(在 Linux 中为 ~/.android/avd-emulator-name/config.ini):

            hw.gpu.enabled=yes
            hw.gpu.mode=software
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2022-10-20
              • 2020-04-08
              • 2020-02-02
              • 1970-01-01
              • 2019-09-26
              相关资源
              最近更新 更多