【问题标题】:Can't attach Android Studio's debugger to Android process无法将 Android Studio 的调试器附加到 Android 进程
【发布时间】:2014-08-08 18:36:43
【问题描述】:

我无法将 Android Studio 的调试器附加到我的可调试应用程序进程中。其他人有这个问题吗?基本上我无法在Choose Process 对话框中列出我的应用程序。

我选择Attach debugger to Android process:

然后,Android Studio 中的Process selection 对话框如下所示:

知道为什么我的应用没有显示在Choose Process 列表中吗?

虽然,DDMSDevices | logcat 列表中看到了我的应用:

Android Monitor 还可以在Devices 列表中看到该应用:

我已经尝试了这些操作:

  • 正在重启MacBook
  • 重启设备:尝试使用Samsung Galaxy Note II N7100 (4.3) 和Samsung Galaxy S4 (4.4.2)
  • 在设备上重新启用Settings->Developer Options
  • 在设备上重新启用Settings->Developer Options->USB debugging
  • 通过运行 adb kill-serveradb start-server 重新启动 adb
  • 从 macbook 重新连接设备和/或插入另一个 USB 端口
  • 在 macbook 上启动 Genymotion 虚拟设备
  • restarting in TCP mode port: 5555 通过运行 adb tcpip 5555 然后使用 adb connect 192.168.1.87 连接到它
  • Waiting more&Restart 当出现此错误时说 ADB not responding. You can wait more, or kill "adb" process manually and click 'Restart' Errors in ADB: ddms: '$ANDROID_HOME/platform-tools/adb,start-server' failed -- run manually if necessary Error screenshot

更新:

我注意到该设备多次出现在Android DDMS->Devices | logcat 列表中。如果我从列表中选择第一个设备,它会显示 No debuggable applications,但我选择了最后一个设备(屏幕截图中的第 4 个)我看到了我的可调试应用程序。请参阅屏幕截图:1st4th。虽然,即使列表中只有 1 个设备并显示可调试设备和应用程序,进程仍然不会出现在Choose Process 对话框中。

【问题讨论】:

标签: android macos debugging android-studio adb


【解决方案1】:

所以我终于搞定了,作者:

Checking 'Show all processes' checkbox!

但是正如您在问题中看到的那样,复选框在开始时处于启用状态,因此存在多个问题。

总而言之,这些是需要执行的其他操作:

  • 杀死所有adb 进程(使用ps -x | grep adbkill -9 [process id]
  • adb start-server 在终端中
  • 重新连接设备
  • adb devices(确保设备连接成功)
  • 确保Android DDMS Devices | logcat 显示您的应用程序和only one device is listed
  • 选中Show all processes 复选框。 See screenshot

【讨论】:

  • 对不起,但这不是解决方案。正如您所提到的,该框在一开始就被选中。如果取消选中该框时您的进程不在列表中,则它不是正在运行的应用程序的进程。
  • 当您尝试使用 Android Studio 进行调试时,请确保 Eclipse 和 ADT 未打开。
  • 我累了,而且比以往任何时候都更老,关闭并重新打开东西以重新修复它们。谢谢。
  • 当 adb 可以看到我的手机但 IDE 不会在 OSX (Mojave) 和 IntelliJ (2018.3) 上显示它时,这对我有用列表连接到调试。 1) 确保您的项目具有 android 方面,2) 关闭 intellij,3) adb kill-server,3) 重新启动 intellij.. 这将允许 intellij 启动 adb 服务器,这似乎对我有用。
  • 通过终端杀死 adb 对我有用。非常感谢
【解决方案2】:

我是这样解决的

一个。关闭 Android Studio
湾。从终端做了adb kill-server。还要从 PC 中的“正在运行的进程”窗口中检查 adb 进程
C。启动 Android Studio
d。 Android Studio 尝试再次初始化 adb 并重新开始工作。

【讨论】:

  • 我必须关闭并重新启动 Android Studio (Mac),然后选中“显示所有进程”才能显示该进程。
【解决方案3】:

这可能是因为 release 构建变体(您可以在 Build-Variants 部分中设置)被错误地选择了,只有 debug-variantdebuggable

希望对一些朋友有所帮助。

【讨论】:

  • 这确实是我尝试在模拟器上运行时出现问题的原因。我不得不从尝试在物理设备上运行调试的另一个问题中发现它,请参阅stackoverflow.com/a/33219069/2848676
  • 谢谢,你节省了我的时间;)
【解决方案4】:

这对我有用,而且很简单, 转到 Tools->Android->Enable ADB Integration,单击它并将其标记为选中,如果未选中,这将允许您的 genymotion 实例连接到 ADB,但如果这不起作用,则如果选择了上述设置,则标记为未选中并等待直到 ADB 刷新(几秒钟)然后再次进入相同的设置并单击它以标记被选中,这将重新启动 ADB 并连接它。每次我看到这个问题时,这对我来说都是完美的。

【讨论】:

    【解决方案5】:

    我通过去终端解决了这个问题:

    • adb kill-server
    • adb start-server

    然后我点击了“附加调试器”按钮,就可以正常使用了

    【讨论】:

      【解决方案6】:

      我也遇到了同样的情况,这个问题的根本原因是更新任何插件时中断(网络断开或强制关闭)(在我的情况下是 kotlin) 解决方案 对于 Mac: 转到首选项(快捷键:cmd + ,

      Windows:(快捷键:**ctrl + alt + s) 或通过菜单

      然后在左侧面板中查找 Languages and Frameworks -> kotlin/java 更新 并在选择它时。在右平移将有选项(按钮)来更新插件。 更新插件。

      退出并重启安卓工作室。 现在您将能够在所有可用进程列表运行的情况下进行调试。

      【讨论】:

        【解决方案7】:

        您不必像我看到很多建议那样关闭 android studio,您可以从这里使用终端。 这样 : 1 进入Android studio中的终端; 2 是否 adb kill-server 杀死进程; 3 adb start-server 是否在这里运行 4. 检查设备是否附加了adb devices

        现在应该可以了!

        【讨论】:

          【解决方案8】:

          除了之前的所有答案, 如果您添加评估和记录的断点, 可能是其中之一导致空指针异常。 所以去运行 -> viewBreakpoints... -> 取消选择所有这些。

          【讨论】:

            【解决方案9】:

            在我的情况下,我只需从手机上拔下并插入电缆。 进程已列出,我可以附加调试器

            【讨论】:

              【解决方案10】:

              我也遇到了这个。我把头发拉出来,做了这里发布的所有事情。我想我可以在这里添加解决方案,以防每个人都尝试了一切。我通过使我的构建变体可调试来解决它。

              所以我做了一个 PR,它被合并了,不幸的是,当我拉回源代码时,我自己的构建变体上的可调试标志被关闭了,所以我只需要重新打开它:

              在您的 build.gradle 文件中:

              android {
                 ...
                 buildTypes {
                    ...
                    my_build_type {
                          minifyEnabled false
                          shrinkResources false
                          debuggable true    // was false before  
                    }
                 }
              }
              

              还要确保在将应用构建到设备之前设置此构建变体:

              【讨论】:

                【解决方案11】:
                1. 关闭 Android Studio。
                2. 从终端“adb kill-server”中终止 adb。打开android studio,然后附加调试器。您将能够看到您的项目。

                【讨论】:

                  【解决方案12】:

                  这对我有用: 首先确定您的 apk 是否可以调试或者是发布版本(您无法调试它)等等

                  主要区别在于调试标志和签名密钥:

                  对于调试版本,apk 将使用启用调试标志的默认调试签名密钥进行签名。

                  对于发布密钥,您必须明确指定要签名的密钥,并且调试标志将被关闭,因此无法对其进行调试。

                  可以为发布版本打开 Proguard。 (也适用于调试版本,但不建议)。这一步需要显式完成,默认为false。

                  Debugging The Release Build Type Without Generating a Signed APK https://stackoverflow.com/Questions/7085644/how-to-check-if-apk-is-signed-or-debug-build https://stackoverflow.com/questions/38864358/difference-between-debug-and-release-apks#:~:text=Major%20differences%20are%20the%20debug,that%20it%20cannot%20be%20debugged.

                  【讨论】:

                    【解决方案13】:

                    这可能不是一个解决方案,但我最终只是切换到使用模拟器设备 (Nexus 5),而不是物理设备。

                    我尝试了上面提到的所有方法,其中包括:

                    • adb 命令
                    • android studio 升级、重启等
                    • 构建变体
                    • 插入和拔出电缆。

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 1970-01-01
                      • 2014-08-27
                      • 1970-01-01
                      • 1970-01-01
                      • 2020-04-17
                      • 2017-04-10
                      • 2014-03-17
                      • 1970-01-01
                      相关资源
                      最近更新 更多