我有一个正在开发的 Pixel-C。我的最低 API 级别是 21,这也是 ART 取代 Dalvik 的级别。我已经尝试了两个:
adb shell setprop dalvik.vm.enableassertions all
adb shell setprop debug.assert 1
他们似乎执行成功。我已放置
assert false : "assertions are active!";
在我的 onStart 中,我在 logcat 中没有看到任何堆栈跟踪。我希望应用程序在安装并运行后立即退出。请告诉我如何让这个断言执行。
请不要提及 JUnit 或其他进行断言的方式,也不要提及任何需要显式抛出错误的解决方案。生产代码不应该抛出错误,也不应该试图捕捉和处理它们。这就是为什么将断言添加到语言中的原因,以便有一种方法可以在测试环境中违反不变量时导致应用程序崩溃,而不会在生产中产生任何开销或风险。
这个有 6 年历史的问题基本相同,但是对于 Dalvik(IE 已过时),解决方案要么不起作用要么不好: 我可以在 Android 设备上使用断言吗?