开发中少见的Debug和Release相关问题

上周在公司项目中出现了一个奇葩问题,以前完全没有遇到过。当时真的是百脸懵逼。。。

问题

我们的项目是需要蓝牙连接外设,外设根据程序指令执行结果。下面描述一下问题具体表现:
项目使用数据线连接手机进行真机调试的时候,一切正常。程序没有问题,外设运行正确。但是,当断开数据线的连接再运行时,外设的运行和程序设定不符合,运行出错。

问题查找

在网上查了一下,网上有一个帖子说到是Debug和Release的问题。然后查看了一下Debug和Release的区别。

Debug : 调试版本,主要是让程序员使用,在调试的过程中调用 Debug 会启动更多的服务来监控错误,运行速度相对较慢,而且比较耗能.
Release : 发布版本,主要是让用户使用, 在使用的过程中会去掉那些繁琐的监控服务,运行速度相对较快,而且比较节约内存.

问题解决

在查询到问题解决的可能路径,那么久开始走下去,因为在连接数据线真机调试时没有问题,我们就看一下我们项目中的Build Configuration设置是debug还是release。查看的方法如下:
这里写图片描述
点击上图中的Edit Schemes,就可以进入设置:
这里写图片描述
可以看到项目现在实在Debug下,这也就是说明在debug下是没有问题的,事实也是,现在设置Build Configuration为Release,在连接上手机运行。这个时候可能运行会报错,根据报错原因修改一下就好了。在运行成功以后,就可以加断点进行调试了,这个时候程序是Release模式下运行的,也就是相当于我们在调试发布版本。根据项目体现出来的问题,一步一步的查找、解决。注意:并不是在Release下运行没有问题就可以了,在Release下没有问题后,还是要修改Build Configuration为Debug版本下,在运行查看运行情况。确保两种模式下都没有问题才可以。

总结

一般遇到这样的问题,都是程序逻辑的问题,只是在两个模式下有了不同的体现,这个时候,我们需要找到问题模式下的问题,再逐步解决,最后将程序修改到两种模式下都OK才可以。经过我一下午的修改,程序的问题简单。只是没有遇到这样的情况。网上类似的也很少。希望我这一篇文章可以帮助更多的人。

猜你喜欢

转载自blog.csdn.net/m0_37681833/article/details/82588610
今日推荐