在Android上断言是否可靠?

时间:2014-10-22 15:11:07

标签: android debugging android-studio adb assert

有这个问题和答案:

Can I use assert on Android devices?

然而,我遇到了这个:

http://tools.android.com/recent/androidstudio045released

说:

一些新的lint检查,特别是一个标记assertion关键字使用的检查。这在设备上无法可靠地运行,您应该使用BuildConfig.DEBUG来进行条件检查。

没有"断言"关键字,只有一个"断言"关键字,所以我不确定该发行说明甚至是什么。

无论如何,我很好奇的是:

如果我按照第一个链接执行操作:

adb shell setprop debug.assert 1

在设备上安装应用程序之前,在打开断言的情况下将应用程序编译为调试,那么它们是否可靠地在所有设备上运行?或者,我应该相信Android Studio 0.4.5的发行说明吗?

2 个答案:

答案 0 :(得分:3)

我认为这种难以让lint检查所指的工作断言。您链接的解决方法尚未得到官方支持,建议使用条件检查作为lint检查建议。

启用断言的解决方法仅适用于root设备,我不知道它是否适用于ART。在https://code.google.com/p/android/issues/detail?id=17324进行了更多的讨论,其中的要点是断言从未真正设计为在Dalvik上得到支持。

答案 1 :(得分:0)

断言在Android上不可靠。运行时没有提供可靠的机制来启用它们,开发人员不断拒绝支持。查看问题175697651833678617324

要可靠地使用assert语句,您必须translate the code,例如在编译之前。