记两次Android Studio编译器导致的问题

最近的开发中遇到了两次代码没问题,而因为AS编译导致的问题,说实话这种问题真的很头疼,一是因为正常情况下,代码运行与预期不符,大家都会觉得是自己的代码问题,而在代码又真的没问题的时候,真的,会怀疑人生,有时候会怀疑是自己的状态不好,没发现问题。还有就是这种问题会浪费大量的时间,尤其是开发任务比较紧的时候,如果问题迟迟不能解决,会比较影响心情吧。

下面开始来说说遇到的这两个问题,AS版本 3.5.2

问题1:Java bean转为kotlin后,代码在运行时无法取得新添加/修改的属性的值,不抛异常,只能取到默认值。

这天我正在开发一个新功能,服务端需要往一个老的接口中加两个新的字段,那还不简单,找到接收请求对应的类,加俩字段,轻松搞定,但是我这不都全部转为kotlin开发了嘛,正好改到老代码,转为kotlin得了吧,熟练的点开code -> convert java file to kotlin file,然后一番调整,嗯,看着顺眼多了,run一下试试。。。
咦,这里为什么是这样的,抓包看一下是不是服务端返回数据不对,或者字段名称写错了。。。
不对啊,数据是对的啊,字段名称也是对的啊,为什么字段值显示出来啥也没有呢,一定是错觉,我是不是刚刚没有run啊,再来一次试一下。。。
卧槽,真的不行啊,不行了,debug看一下吧。。。
打断点到显示逻辑的地方,看了下熟悉值,怎么是空的???再看一眼抓包的数据。
数据是对的啊。名称也是对啊的,咋就没有值呢。。
一定是序列号的库出问题了,没解析出我的字段。。。
不对啊,我这字段和值也没啥特殊字符,为啥其他字段就能正常解析呢。。。
然后接来下的一段时间,就是怀疑人生的时刻,不停的改代码,打日志,断点,能用的手段都用上了。
最后也不知道怎么想的,我把debug包反编译了,然后找到对应的那个bean,卧槽,这不是我改之前那个吗???改了半天代码,压根没生效嘛!我这半天就自己和空气斗智斗勇了?服!
clean一下,把build文件夹删掉重新跑一下。果然,就好了?!!!

问题2:不同布局里控件ID相同,导致获取不到指定那个控件

这天我又在码代码,布局里加了张图片,显示收藏状态的,取名id iv_star

android:id="@+id/iv_star"

然后我在代理里面根据收藏状态设置了不同的图片资源,run一下
为啥没显示图片?我瞎了???不对,其他都显示了,打开布局边界看下。
果然,布局是在那儿的,咋就不显示呢,我在xml先设置一个默认图试试,再run一下。
这下有了,不过怎么都是默认的图啊,咋没按我代码设置的来啊?打个断点看看。
断点进了,代码逻辑对的,代码也走了,可是。。。咋就没生效呢?我id没找对吗?(我会犯这种错?怀疑中),CV一下,没错啊,一模一样啊,我点击id是能跳转到布局代码的啊。
难道setImageResource这个方法的问题?那我换成setImageDrawable试试。
还不行?难道是findId没找到?我用kotlinx直接用id名称试试。
还没有,我断点看看,自己findid和kotlinx招到的是同一个实例,那咋回事儿啊?
clean一下试试。。。不行,我删build文件夹!!。。。还是不行o(╥﹏╥)o
怀疑人生。。。。
我换个id试试(怀疑自己智商不在线,随便改改试试吧)
咦?好了?就好了?!!真的是服气!又是与空气斗智斗勇的一天

总结:虽然开发过程中会遇到一些编译器或者IDE导致的问题,但是这种问题毕竟是很少的,相对而言绝大多数都是自己代码出问题,不管是自己的问题也好,编译器或者IDE的问题也好,在尝试排查一段时间无果后,最好转一下注意力或者做点别的,一是一直排查思考是比较耗费精力的,比较容易精神疲惫,这种状态下效率比较低下,还有就是需要让思维跳出当前这种状态,可能过一会换个心情换个角度再来看,问题就解决了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值