首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Eclipse DDMS 持續自動偵測導致控制台閃爍:ADB 衝突排查與關閉方法

     編輯:程式設計疑難解答

Eclipse 開發純 Java 專案 (非 Android) 時,DDMS 視圖仍會週期性掃描 ADB 連線,導致控制台焦點被搶奪、輸出閃爍。

根本原因

  • 電腦上同時運行 **多個 ADB 進程**:Genymotion、Android Studio、手機助手 (豌豆莢、360)、`adb.exe` 殭屍進程。
  • Eclipse ADT 插件內建 ADB,啟動時自動啟動 DDMS 監控執行緒,偵測到裝置列表變更即刷新 UI。

解決方案 (按推薦順序)

  1. 統一 ADB 版本並關閉其它 ADB 來源:
    • 關閉 Genymotion/模擬器、手機助手、Android Studio。
    • 任務管理器結束所有 `adb.exe` 進程。
    • Eclipse 偏好設定 → Android → SDK Location → 指向**單一** SDK 目錄 (建議使用系統環境變數 `ANDROID_HOME` 指向的 SDK)。
    • 重啟 Eclipse。
  2. 關閉 DDMS 自動監控 (不再開發 Android 時):
    • Window → Preferences → Android → DDMS → 取消勾選「Automatically monitor Android devices」/「Update thread/heap on device selection」。
    • 或直接關閉 DDMS 透視圖:Window → Perspective → Close Perspective → DDMS。
  3. 純 Java 專案移除 Android Nature:
    • 專案右鍵 → Properties → Builders → 移除「Android Builder」。
    • 專案 `.project` 檔中移除 `org.eclipse.android.core.androidNature`。
  4. 升級/降級 ADT 插件: 舊版 ADT (23.x) 在新版 SDK/平台工具上易衝突,建議 ADT 23.0.7 + SDK Platform Tools 28.0.x 穩定組合。

驗證 ADB 衝突指令

adb kill-server
adb start-server
adb devices
# 若輸出 "daemon not running; starting now at tcp:5037" 重複出現,說明有其它程式在搶 5037 埠
netstat -ano | findstr 5037  # 找出佔用進程 PID
taskkill /PID  /F

長期建議

  • **棄用 Eclipse ADT**,遷移至 **Android Studio** (官方唯一支援 IDE) 或 **IntelliJ IDEA** (社區版免費支援 Android)。
  • 純 Java 專案使用 **Eclipse for Java Developers** / **IntelliJ IDEA Community** / **VS Code (Java Extension Pack)**,不安裝 Android 插件。

DDMS 閃爍本質是 ADB 多路爭用,統一 ADB 來源或關閉 Android 相關功能即可根治。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved