Android Eclipse无法debugging

我的应用程序的debugging现在突然中断。 到目前为止,这已经很好了,我甚至重新加载了我的整个代码的一个已知的好版本,它仍然无法debugging,甚至无法运行。 当我打开debugging或运行应用程序启动,当它正要显示的应用程序,它崩溃(即使进入主视图之前)。 我在第一行代码有一个断点,它甚至从来没有达到它。 它只是去源找不到 – 源附件不包含文件DexFile.class的来源…..我100%确定我已经加载的所有代码正在工作,因为它是保存的已保存的备份上次工作时。

此外,奇怪的是,如果我拔掉电缆在这一点上,应用程序正常加载,并正常工作。 所以这绝对是一个debugging问题。 它在启动时被卡住了。 我重新启动了我的电脑和电话几次无济于事。

LogCat: `04-04 11:17:33.462: DEBUG/AndroidRuntime(4148): CheckJNI is OFF 04-04 11:17:33.462: DEBUG/dalvikvm(4148): creating instr width table 04-04 11:17:33.502: DEBUG/AndroidRuntime(4148): --- registering native functions --- 04-04 11:17:33.712: DEBUG/AndroidRuntime(4148): Shutting down VM 04-04 11:17:33.712: DEBUG/dalvikvm(4148): Debugger has detached; object registry had 1 entries 04-04 11:17:33.712: INFO/AndroidRuntime(4148): NOTE: attach of thread 'Binder Thread #3' failed 04-04 11:17:33.902: DEBUG/AndroidRuntime(4157): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<< 04-04 11:17:33.902: DEBUG/AndroidRuntime(4157): CheckJNI is OFF 04-04 11:17:33.902: DEBUG/dalvikvm(4157): creating instr width table 04-04 11:17:33.942: DEBUG/AndroidRuntime(4157): --- registering native functions --- 04-04 11:17:34.152: INFO/Process(107): Sending signal. PID: 4137 SIG: 9 04-04 11:17:34.152: INFO/ActivityManager(107): Force stopping package org.scanner uid=10110 04-04 11:17:34.162: ERROR/ActivityManager(107): fail to set top app changed! 04-04 11:17:34.182: INFO/UsageStats(107): Unexpected resume of com.htc.launcher while already resumed in org.scanner 04-04 11:17:34.192: INFO/ActivityManager(107): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=org.obdscanner/.activity.ObdReaderMainActivity } 04-04 11:17:34.202: DEBUG/AndroidRuntime(4157): Shutting down VM 04-04 11:17:34.202: DEBUG/dalvikvm(4157): Debugger has detached; object registry had 1 entries 04-04 11:17:34.212: INFO/AndroidRuntime(4157): NOTE: attach of thread 'Binder Thread #3' failed 04-04 11:17:34.222: WARN/InputManagerService(107): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@464105d8 04-04 11:17:34.242: INFO/ActivityManager(107): Start proc org.scanner for activity org.obdscanner/.activity.ReaderMainActivity: pid=4165 uid=10110 gids={3003, 3002} 04-04 11:17:34.332: WARN/ActivityThread(4165): Application org.scanner is waiting for the debugger on port 8100... 04-04 11:17:34.332: INFO/System.out(4165): Sending WAIT chunk 04-04 11:17:34.352: INFO/dalvikvm(4165): Debugger is active 04-04 11:17:34.472: DEBUG/Norton Community Watch/smrsd(3910): smrsd broadcast intent success! 04-04 11:17:34.512: ERROR/(3910): /data/data/com.symantec.monitor/app_log_item/1301930254.txt//data/data/com.symantec.monitor/app_log_item 04-04 11:17:34.542: INFO/System.out(4165): Debugger has connected 04-04 11:17:34.542: INFO/System.out(4165): waiting for debugger to settle... 04-04 11:17:34.632: INFO/global(3898): Default buffer size used in BufferedReader constructor. It would be better to be explicit if an 8k-char buffer is required. 04-04 11:17:34.742: INFO/System.out(4165): waiting for debugger to settle... 04-04 11:17:34.862: DEBUG/dalvikvm(3898): GC_FOR_MALLOC freed 4492 objects / 274560 bytes in 41ms 04-04 11:17:34.942: INFO/System.out(4165): waiting for debugger to settle... 04-04 11:17:35.142: INFO/System.out(4165): waiting for debugger to settle... 04-04 11:17:35.342: INFO/System.out(4165): waiting for debugger to settle... 04-04 11:17:35.552: INFO/System.out(4165): waiting for debugger to settle... 04-04 11:17:35.752: INFO/System.out(4165): waiting for debugger to settle... 04-04 11:17:35.952: INFO/System.out(4165): waiting for debugger to settle... 04-04 11:17:36.157: INFO/System.out(4165): debugger has settled (1451) 04-04 11:17:37.296: DEBUG/dalvikvm(4165): threadid=1: still suspended after undo (sc=1 dc=1 s=Y) 

`

Solutions Collecting From Web of "Android Eclipse无法debugging"

请在这里看到正确的答案

你在其中一个类中设置了一个断点。 只要在你的项目中取下所有的中断点再运行,他们将是没有问题的。

Eclipse-> Window-> Show View – >(Other-> Debug – >)Breakpoints

Eclipse和各种Android开发插件有时会不同步。 当debugging/开发变得“时髦”时,我通常会尝试以下方法

  1. 如果你的Logcat不显示行,清除它。 它有一个小缓冲区。 同时确保您的设备在“DDMS”的angular度select。 如果您select了模拟器,则只能从中接收日志logging。
  2. 清理并重build所有打开的项目。 确保没有错误。
  3. 从远程设备/仿真器卸载应用程序。
  4. 重新启动Eclipse!
  5. 在你的平台上打开一个terminal,在“platform-tools”目录下使用adb工具。

     adb kill-server adb start-server 
  6. 如果使用存储库,则隐藏工作副本并还原源代码。

奇怪的解决scheme…我刚刚从包资源pipe理器closures项目,然后从工作区中删除它。 封闭的Eclipse。 重新打开Eclipse并导入项目。

(从Jesse的评论复制和粘贴)

我尝试了上述所有,但我原来不工作,由于eclipse.exe的多个实例任务pipe理器 (CTRL + SHIFT + ESC)中全部杀死他们解决了它。

在您的Android设备(或模拟器)上转到:

 Applications - Settings - Applications - Manage applications - All 

在那里你必须select你的应用程序并将其卸载。

之后尝试再次从IDE运行您的应用程序。 它应该现在工作。

创build一个types为Remote Java Application的新debuggingconfiguration,并将其设置为本地主机和您在DDMS窗口中看到的端口。 https://stackoverflow.com/a/13421917/624109

我知道这是晚了….如果@山姆或@基尔莱斯克的答案不起作用,使用它。

  1. 确保清单设置android:debuggable

  2. onCreate ,添加对Debug.waitForDebugger的调用。

waitForDebugger添加调用也可在倒车时使用。 例如你可以在onCreate手动添加以下内容,并将smali / baksmali重新编译:

 invoke-static {}, Landroid/os/Debug;->waitForDebugger()V 

我不必经常使用这些技巧,但是当我这样做的时候, waitForDebugger总是有效的。 我不记得有一次我不能捕捉debugging器。

由于我的代码被混淆了,所以发生了这种情况。 我没有注意到有人为生产版本更改了proguard.cfg并注释了“-dontobfuscate”这一行。