這GoogleAuthUtil爲gettoken()調用:GoogleAuthUtil.getToken()拋出:RuntimeException的:不能()內螺紋已不叫Looper.prepare創建處理程序
String token = GoogleAuthUtil.getToken(appContext, accountName, scope);
偶爾失敗與此異常:
java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare():
ak: GooglePlayServicesNotAvailable
at com.google.android.gms.auth.GoogleAuthUtil.a(Unknown Source)
at com.google.android.gms.auth.GoogleAuthUtil.getToken(Unknown Source)
at com.google.android.gms.auth.GoogleAuthUtil.getToken(Unknown Source)
所以(杜)明顯的東西是谷歌的代碼試圖創建一個處理程序:)但是,我們正在從一個標準的調用爲gettoken()(非活套)線程與所有每Google's documentation推薦的異常處理和明確的文件說「示例說明如何在阻塞的非主線程上下文中使用GoogleAuthUtil「。所以例如它當然不應該在UI線程上調用。
gplay文檔中有一點是不明確的:我們將應用程序上下文傳遞給getToken(),但文檔沒有說明是否需要特定的上下文,例如從一個活動。其他人有經驗嗎?我不明白這可能會導致問題,但你永遠不知道。
主要問題:如何恢復?目前,我們發現異常並放棄,但這意味着我們無法獲得受影響用戶的身份驗證。
像往常一樣從Google員工的指導,將不勝感激:)
謝謝!