1. 程式人生 > >Caused by :java.lang.reflect.InvocationTargetException和Binary XML file line #**錯誤記錄

Caused by :java.lang.reflect.InvocationTargetException和Binary XML file line #**錯誤記錄

昨天在給測試打了一個包,測試回饋說某個地方會崩潰,我就看了下錯誤日誌:

Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class <unknown>
                                                                 Caused by: java.lang.reflect.InvocationTargetException

反正大概意思就是某個 XML 檔案的第二行出了錯,我到網上查了查,發現他們出錯資訊後面至少還有個類名啊啥的,我這直接給了個 unknown,挺頭疼的。

最奇怪的是,同樣的程式碼,別的同事打包出來那個位置是不會崩潰的,只有我打包會出現,同時測試那邊用 jenkins 打包也出現了一次,我在想肯定是環境有問題。

然後最終錯誤日誌,找到了一個公有的 adapter 類,結合崩潰的位置,定位到了一個 xml 檔案,第二行是一個約束佈局宣告:
約束佈局錯誤.jpg
發現有 lint 提示,讓我把約束佈局升級到 1.0.2 ,升級之後,就不再報錯了。

初步判斷應該是新環境情況打包都會有問題,我是新的 mac 電腦,Jenkins 也相當於新環境。而他們老環境因為 Gradle 有包快取,所以不會有問題。

記錄下問題。