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時不會出現,而是在混淆編譯後纔會出現,因此混淆後一定要再做測試

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