在C#中,我可以编写:
if(Debugger.IsAttached)
Debugger.Break();
当不调试程序时,这无效。连接调试器后,它的行为就像一个断点,永远无法关闭。如何在Android上达到类似的效果?
也许我根本不应该关注断点。我真正想要的是在常规使用中不产生任何后果(将向用户显示通用错误消息),但是一旦开发人员开始查看错误,错误源就变得显而易见。我已经尝试过断言,但这是一个子项目,大多数情况下都经过编译以发布 flavor ,并且我不能依靠记住它的人来将其切换为调试。
最佳答案
我认为Debug.isDebuggerConnected()
是您想要的。仅在应用程序已连接调试器的情况下启动时,此方法将返回true
,否则将返回false
,无论build type
还是flavor
。不幸的是,我认为您不能以编程方式停止执行,但是通过上述说明,您应该能够显示错误消息或引发异常。就个人而言,我正在考虑这样的事情:
if (Debug.isDebuggerConnected()) {
// throw an exception for the developer with a detailed message
} else {
// show the general error message to the user with a dialog/toast
}