關(guān)于Google Service不可用的排查問題總結(jié)

1. 背景:

同事在小米手機上使用Google Service 進行定位和獲取POI時,調(diào)用方法執(zhí)行后,未獲取到任何回調(diào),無成功無失敗。

2.排查:

用該小米手機連上USB,未能識別,遂放棄該手機聯(lián)調(diào)。

乃用HUAWEI Nova來調(diào)試,因為nova也定位不到。(但是,nova是有任務(wù)結(jié)束回調(diào)的)

提出猜想:

A.Google服務(wù)不可用

通過調(diào)用GoogleApiAvailability,得到結(jié)果result = SUCCESS,即可用。懷疑該API的使用價值。

B.Google服務(wù)可用,但是接口調(diào)不通。

未找到判斷某個接口可用的判斷方法。

C.還是缺少某個服務(wù)組件。

無法判斷是哪個。

D.Google服務(wù)框架版本不對

參考HUAWEI Mate 10,安裝了Google服務(wù)框架,經(jīng)測試問題沒有改變。

以上思路,無法解決問題,卡住了。

這個時候,新的一周,新的思路:

同事自己連上小米手機,通過GoogleApiAvailability調(diào)用,得到result = INVALID,即不可用。那么也就是說,官方Serivce API的使用價值無需懷疑??傻茫琻ova的Google Service確實可用。那么為什么調(diào)不通呢?根據(jù)小米和nova的不同反饋,推出猜想:

nova的錯誤和小米不一樣,nova有另外的錯誤。

排查查看logcat,發(fā)現(xiàn)了錯誤,網(wǎng)上搜查,懷疑是Google Service版本與系統(tǒng)不兼容,內(nèi)部出現(xiàn)了錯誤。即Google Service進程有問題。

驗證:將應(yīng)用中的Google Service相關(guān)一律卸載,再次調(diào)用GoogleApiAvailability判斷是否可用,返回INVALID,即不可用。證明上面推斷。

3.解決方案:

考慮的國外默認Google服務(wù)可用且版本正確,在方法執(zhí)行時,事先判斷GoogleApiAvailability是否可用。

4.總結(jié)

在解決該問題時,犯了許多錯誤,致使花費時間較長,大概兩三天,如果方向正確的話,根本不需要這么久時間,一天足夠了。錯誤如下:

1.懷疑GoogleApiAvailability的可用性,不該不該。

2.未對錯誤手機小米和nova進行對比分析,致使變量較多,只能亂猜亂試。

3.未對nova的異常情況認真分析,對nova的錯誤未重視,把nova的錯誤等同為小米的錯誤。

4.只考慮到更換google服務(wù)框架,未考慮到完全卸載的場景。

5.未對小米手機進行調(diào)試,也就是沒有對病人進行針對性檢查,卻換了一個相似的病人進行排查,卻不曾想,兩者表象相同,但實際問題并不一樣。實乃庸醫(yī)。

無數(shù)事實證明,解決問題的思路很重要。謹記!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容