如何在Android Studio中使用assert

26

我一直在看这个问题,我认为只在调试构建中使用assert会是一个好主意。

我是否需要在Android Studio中进行特殊配置以允许asserts?我还想保证它们不会出现在发布构建中。


有人知道这里有什么函数吗?这个链接通常对Android中的assert很有用。但是在Android Studio中有任何方便的方法都可以。 - Denis Lukenich
1个回答

11

adb shell setprop debug.assert 1是从您所提到的问题中引用的内容,需要在您正在测试的设备上执行,因此您可以编写脚本甚至为此创建自定义gradle任务(gradle文档)。

总体而言,我建议您在生产环境中也进行检查,并以适当的方式处理它们。一个简单的解决方案是抛出一个RuntimeException。通过使用已检查的异常,您甚至可以处理这些错误状态/误用API的恢复。

此外,添加适当的测试将是有意义的,以确保您的代码/API仅发出可以被您其余代码处理的“有效”值。


你的评论似乎是反对断言的,所以在Android中通常不建议使用它们?我喜欢使用断言来帮助我快速找到可能存在的错误,通过使用失败快速行为来测试和调试我的应用程序。但在生产环境中,我不希望我的应用程序容易崩溃。在这里,"希望" 应用程序能够以某种方式恢复优于崩溃。无论如何,在可能存在非法值的点(例如用户输入的情况下),异常显然是正确的方法。 - Denis Lukenich
我不是断言的忠实粉丝,而是更喜欢使用RuntimeException-Thrower来让我的应用程序快速失败。我赞同https://dev59.com/tXM_5IYBdhLWcg3wrFIt的答案,并留出个人偏好的空间。然而,使用断言时,您必须处理adb以启用/禁用它们。 - Florian Barth

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