如何在Android上以编程方式创建断点

时间:2016-12-14 11:33:44

标签: java android debugging breakpoints

在C#中我可以写:

if(Debugger.IsAttached)
    Debugger.Break();

当程序未被调试时,这没有任何效果。附加调试器时,它的行为类似于永远不能关闭的断点。如何在Android上实现类似效果?

或许我根本不应该关注断点。我真正想要的是在常规使用中没有任何后果(将向用户显示一般的错误消息),但是当开发人员开始查看它时,错误的来源变得明显。我已经尝试过assert,但它是一个子项目,它被编译为大部分时间都会释放味道,而且我不能依赖某人记住将其切换到调试。

3 个答案:

答案 0 :(得分:3)

我认为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 } 。不幸的是,我不认为你可以以编程方式停止执行,但是使用上面的指令你应该能够显示错误信息或抛出异常。就个人而言,我正在考虑这样的事情:

UIViewController

答案 1 :(得分:1)

我也希望可以做到这一点,但是我还没有找到任何合理的方法以编程方式使调试器断点。为了解决这个问题,我要做的是使用方法“ br”创建一个断点类。调试时,将在“ br”方法中设置一个断点。之后,只要我的代码调用“ br”方法,调试器就会停止。然后,我退出该方法,然后检查调用“ br”方法的程序的状态。希望有帮助!

答案 2 :(得分:0)

如果我清楚了解你 - 试试这段代码:

if (BuildConfig.DEBUG) {
        // Your, developers behavior
    }
    else {
        // release behavior
    }