簡體   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