Android开发容易忽略的小错误记录整理

计划这篇博客长期更新,用于收集整理在开发过程中遇到的问题和一些解决办法

1. android.content.res.Resources$NotFoundException: String resource ID #0x15

这里写图片描述

字面意思是资源没有找到,错误是在使用TextView的setText()时报的,所以从这里入手开始检查,发现了错误所在:

 holder.tvAtyItemLaunchTime.setText(DateUtil.getAgeFromBirth(currentAty.getOwner_birth()));

其中的DateUtil.DateToStr()返回的是一个int类型的数据。而setText()方法需要传入的参数类型为String,类型不符啊!所以正确的做法如下:

 holder.tvAtyItemLaunchTime.setText( ""+ DateUtil.getAgeFromBirth(currentAty.getOwner_birth()));

是的,就是在前面加上“”+使之变成一个字符串。

总结: 在使用setText()的时候要注意里面的值,只能是String类型或者CharSequence,关于String类型和CharSequence的区别:CharSequence与String都能用于定义字符串,但CharSequence的值是可读可写序列,而String的值是只读序列。

2.使用eventBus后,EventBusException:Subscriber class …… has no public methons called onEvent at …

如果注册了event的地方,没有一个public void onEvent(Object oc)方法的话,就会报这个错误:
这里写图片描述

也就是说,如果某个页面注册了event,那么这个页面必须要有onEvent()方法,而且是public void 修饰的,如果没有,就会报错。如果混淆了这样的页面,就找不到onEvent()(方法名变了)这个方法了,于是导致报错。解决办法就是:混淆时keep掉有使用event的页面
总结:这个错误在debug时不会出现,而是在混淆编译后才会出现,因此混淆后一定要再做测试

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章