在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
}

10-08 11:19