我已经使用 Genymotion Android 模拟器 2 周了。到目前为止一切都很好,我能够调试并且一切正常(而且速度也非常快)。
昨天调试器突然发疯了:它跳过某些代码行,不执行某些方法,显示 obj
实例不为空(鼠标悬停)但不执行 if (obj != null)
后面的代码块,等等。
有什么解决办法吗?
事实上,我认为它与标准 Android 模拟器的行为方式相同。这也是从昨天开始的。所以我很困惑我能做些什么来解决这个奇怪的问题并继续正常工作。
不用说,我在 Eclipse 中清理并重建了我的项目几次。也重新启动了我的电脑。目前没有任何帮助。
最佳答案
我不能确定这是问题所在,但当我有一个接口(interface)包含两个具有相同通用类型名称但不同签名的方法时,我遇到了一个奇怪的调试行为,例如:
public <T extends Something1> void method1(T t){...}
public <T extends Something2> void method2(T t){...}
我遇到的问题是:
- 我无法计算任何表达式。
- 计算不进入或结束,只运行...直到下一个断点。
- 我确定还有其他事情,但我查看了它们,因为我只是想把事情做好 :|
出于某种原因,这是 known issue in Eclipse并且在过去的几年里一直没有得到解决......
所以真正的解决方案实际上是将一个(或两个)通用参数名称重命名为:
public <T1 extends Something1> void method1(T1 t){...}
public <T2 extends Something2> void method2(T2 t){...}
令人惊讶的是,这解决了让我抓狂了很长时间的错误!
我希望这是问题所在:)
关于android - 在 Windows 7 上的 Eclipse 中调试 Genymotion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27470940/