Eclipse调试器自动停止,没有任何可抛出的异常。

9
Eclipse调试器突然停止,没有抛出任何异常:
private void openChannelsListActivity() {
    try{
        Intent gridListIntent=new Intent();
        // the pause is on the following line
        gridListIntent.setClass(this,ChannelsListActivity.class);
        startActivity(gridListIntent);
    }
    catch (Throwable e){
        ErrorMessage.outputMessageByName(
            "channels_list_activity_create",this, " While setting intent.");
        finish();
    }
}

堆栈是:
DexFile.defineClass(String, ClassLoader, int, ProtectionDomain) line: not available [native method] 
DexFile.loadClassBinaryName(String, ClassLoader) line: 207  
PathClassLoader.findClass(String) line: 200 
PathClassLoader(ClassLoader).loadClass(String, boolean) line: 551   
PathClassLoader(ClassLoader).loadClass(String) line: 511    
PackVideo.openChannelsListActivity() line: 508  

如果我按“恢复”按钮,应用程序就可以正常运行。虽然活动开始了,但这并不是正常的行为,肯定意味着有什么问题。到底是什么呢?
问题不在等待上;从启动应用程序到达此点的时间约为2秒。
这不是未捕获的异常;我已经在调试器首选项中关闭了它们。
这也不是隐藏的断点,我已经全部清除了它们。
3个回答

20

一个适当的解决方案是:

依次选择窗口 -> 显示视图 -> 其他 -> 调试 -> 断点

然后在该视图上点击“删除所有断点”按钮。

似乎 Eclipse 混淆了,认为有一个断点实际上并没有。


有趣的观察,谢谢,+1,我自己没有遇到过。但事实并非如此。这不是“解决方案”,也不是一个适当的解决方案,它只是众多可能解决方案之一 - 最好更正标题。 - Gangnus
2
这对我有用,但显然不是因为Eclipse混淆了,而是因为Eclipse让我困惑了。 :) 显然我的一个类上有一个断点,用C符号突出显示,而不是普通的蓝色圆点。 - Steven Jeuris

4
再次出现了Eclipse的bug。在进入和退出Eclipse几次后,这种行为消失了。
至于清除断点,当有一些断点问题时,我已经使用了两年了。这次问题更深层次 - 我不得不多次进入和退出Eclipse - 我没有数过,我想大约有5次。在最后一次之后,问题消失了。没有系统重启,也没有在工作区或Eclipse文件夹中进行任何手动更改。我认为,它与调试器的智能行为有关,当它在可能发生故障之前停止。Eclipse调试器存在缺陷,在这个非常复杂的部分中,它可能会更加缺陷。

1
有趣。起初我也以为这是Eclipse的一个bug,但现在事实证明我实际上在一个类上设置了断点,它看起来不像断点,而是一个“C”符号。正是这个断点被触发了,而我没有意识到。这就是为什么JeffG的解决方案对我有效的原因。你确定JeffG的解决方案在你的情况下无效吗? - Steven Jeuris
关于清除断点,我已经使用它两年了,每当有一些断点问题时,我总是使用它。这次问题更深入 - 我不得不多次进入和退出Eclipse - 我没有数过,我想大约有5个。在最后一个之后,问题消失了。没有系统重启,也没有在工作区或Eclipse文件夹中进行任何手动更改。我认为,它与调试器的智能行为有关,当它在可能的断点前停止时。Eclipse调试器存在缺陷,在这个非常复杂的部分中,它可能会更加缺陷。 - Gangnus

3

我曾经遇到过相同的问题;它是在MyActivity.java类声明处设置的断点。显然,在类声明处设置断点会在编辑器中显示为绿色圆圈中的白色“C”,而不是通常的蓝色点。可能是我手误添加了断点。我删除了断点,调试器就不再在那里停止了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接