記錄Android Retrofit幾個專案中遇到的Bug
阿新 • • 發佈:2018-12-17
1:sssExpected ':status' header not present
在開發的時候突然發現在android8.0的時候會報這個錯誤,並且無法請求到資料,但是在4.4上面是好的,沒有任何異常
後來一頓上網搜尋,找到解決辦法,我專案中的okhttp版本是3.2.0,升級到3.9.0就好了,在8.0上面可以正常訪問,具體原因是因為協議什麼的,可以自己瞭解下
compile 'com.squareup.okhttp3:okhttp:3.2.0' compile 'com.squareup.okhttp3:logging-interceptor:3.2.0'
將okhttp換到3.9.0之後可以請求到資料但是,如果沒有把日誌攔截器版本進行更新的話,會報另一個錯誤:
Caused by:java.lang.NoClassDefFoundError: okhttp3.internal.Platform
並且專案閃退,這個就是剛說的如果添加了並使用了日誌攔截器,記得把攔截器版本同時更新到3.9.0就可以解決
2:JsonReader.setLenient(true) to accept malformed JSON at line 1 column 1 path
在使用retrofit的時候有的時候會報這個異常,也很奇怪,剛開始遇到的時候以為是後臺返回json資料有問題,後來把json資料打印出來,校驗發現沒有問題,解決方法:
檢視在構建httpclient的時候有沒有addHeader,就像這樣:
如果有的話,請把 gzip那條去掉:
再次執行就可以了.
開發中遇到的一點問題,寫下來,有遇到同樣問題的可以方便解決...