如何在安卓中使用断言?
我想在安卓设备上使用。断言似乎不起作用,所以我在网上搜索,我找到了这个本地解决方案:assert obj != null : "object cannot be null"
adb shell setprop debug.assert 1
它确实在我的本地计算机上工作。
我想使用我的Eclipse项目运行这个命令(所以它将在源代码管理中)。我该怎么做?
我想在安卓设备上使用。断言似乎不起作用,所以我在网上搜索,我找到了这个本地解决方案:assert obj != null : "object cannot be null"
adb shell setprop debug.assert 1
它确实在我的本地计算机上工作。
我想使用我的Eclipse项目运行这个命令(所以它将在源代码管理中)。我该怎么做?
Assert在Android中不起作用,因为大多数时候,一个人不是在调试模式下运行的,而是在一些优化的代码中运行的。因此,正确的解决方案是手动抛出一个异常,代码如下:
if (obj==null) throw new AssertionError("Object cannot be null");
应该注意的是,根据设计,Asserts 用于调试代码,而不是用于发布时代码。因此,这可能不是抛出 Assert 的最佳用法。但这就是你仍然能做到的方式,所以...
在 Android 4.x 设备上进行测试,可以在 Android 设备上使用 Java 断言:
现在,您的Android设备可以明智地断言检查,并且在断言检查失败时会抛出AssersisEror。
编辑:
另一种简单的方法,从PC启用断言,直到设备重新启动:
platform-tools\adb shell setprop debug.assert 1
例如,您可以创建一个.bat文件(在Windows上),并在附加设备时运行它。