繁体   English   中英

无法将 Android Studio 的调试器附加到 Android 进程

[英]Can't attach Android Studio's debugger to Android process

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

我选择Attach debugger to Android process

将调试器附加到 Android 进程

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

待调试列表中没有应用

为什么我的应用程序未显示在“ Choose Process列表中的任何想法?

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

<code>设备 | logcat</code> 列表

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 虚拟设备
  • 通过运行adb tcpip 5555然后使用adb connect 192.168.1.87连接到它, restarting in TCP mode port: 5555
  • Waiting more并在收到此错误时Restart ,说ADB not responding. You can wait more, or kill "adb" process manually and click 'Restart' ADB not responding. You can wait more, or kill "adb" process manually and click 'Restart' ddms: '$ANDROID_HOME/platform-tools/adb,start-server' failed -- run manually if necessary ADB not responding. You can wait more, or kill "adb" process manually and click 'Restart' Errors in ADB: 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错误截图

更新:

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

所以最后我让它工作,通过:

Checking 'Show all processes' checkbox!

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

总而言之,这些是要完成的其他操作:

  • 杀死所有adb进程(使用ps -x | grep adbkill -9 [process id]
  • 终端中的adb start-server
  • 重新连接设备
  • adb devices (确保设备连接成功)
  • 确保Android DDMS Devices | logcat Devices | logcat显示您的应用程序,并且只列出了一台设备
  • 选中Show all processes复选框。 看截图

我是这样解决的

一种。 关闭 Android Studio
从终端执行adb kill-server 同时检查 adb 进程也从 PC 的运行进程窗口中被杀死
C。 启动 Android Studio
d. Android Studio 尝试再次初始化 adb 并恢复工作。

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

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

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

我通过转到终端并执行以下操作来解决此问题:

  • adb kill-server
  • adb start-server

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

我也发生了同样的情况,这个问题的根本原因是在更新任何插件时中断(网络断开或强制关闭)(在我的情况下为 kotlin)解决方案对于 mac: goto prefrences(shortkey: cmd + , ) 这是它的图像

对于 Windows:(快捷键:**ctrl + alt + s )或通过菜单
这是它的图像

然后在左侧面板中查找 Languages and Frameworks -> kotlin/java updaes 并选择它。 在右盘中会有选项(按钮)来更新插件。 更新插件。 这是它的图像

退出并重新启动android studio。 现在,您将能够在所有可用进程列表的情况下进行调试。

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

现在它应该可以工作了!

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

在我的情况下,我只是从电话中拔出并插入电缆。 进程已列出,我能够附加调试器

我也刚遇到这个。 我正在拔头发,做了这里张贴的所有事情。 我想我可以在这里添加解决方案,以防每个人都尝试过所有方法。 我通过使我的构建变体可调试来解决它。

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

在您的 build.gradle 文件中:

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

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

在此处输入图片说明

  1. 关闭 Android Studio。
  2. 从终端“adb kill-server”杀死 adb。 打开android studio,然后附加调试器。 您将能够看到您的项目。

这对我有用首先找到你的apk是否可以调试或者是发布版本(你不能调试它)等等

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

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

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

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

在不生成签名 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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM