如何在安卓中使用断言?

2022-08-31 12:45:59

我想在安卓设备上使用。断言似乎不起作用,所以我在网上搜索,我找到了这个本地解决方案:assert obj != null : "object cannot be null"

adb shell setprop debug.assert 1

它确实在我的本地计算机上工作。

我想使用我的Eclipse项目运行这个命令(所以它将在源代码管理中)。我该怎么做?


答案 1

Assert在Android中不起作用,因为大多数时候,一个人不是在调试模式下运行的,而是在一些优化的代码中运行的。因此,正确的解决方案是手动抛出一个异常,代码如下:

if (obj==null) throw new AssertionError("Object cannot be null");

应该注意的是,根据设计,Asserts 用于调试代码,而不是用于发布时代码。因此,这可能不是抛出 Assert 的最佳用法。但这就是你仍然能做到的方式,所以...


答案 2

在 Android 4.x 设备上进行测试,可以在 Android 设备上使用 Java 断言:

  • 编辑 /system/build.prop(例如通过 X-plore),在文件末尾添加行:debug.assert=1
  • 重新启动手机

现在,您的Android设备可以明智地断言检查,并且在断言检查失败时会抛出AssersisEror。

编辑:

另一种简单的方法,从PC启用断言,直到设备重新启动:

platform-tools\adb shell setprop debug.assert 1

例如,您可以创建一个.bat文件(在Windows上),并在附加设备时运行它。


推荐