問題現象
最近集成華為提供的HMS SDK能力時,無法登錄,調用華為提供的getCurrentPlayer接口總是報錯6004。日志搜索hmssdk,報錯如下:
Line 291: I/HMSSDK_HmsClient: receive msg status_code:0, error_code6004, api_name:game.getCurrentPlayer
搜索官網錯誤碼介紹,顯示該錯誤碼表示:權限不存在,未在華為開發者聯盟上申請。
解決方案
既然報錯原因是沒有在開發者聯盟上申請相關權限,因此我先參考服務和API開通文檔檢查了下當前開啟的API權限情況,截圖如下:
應用中涉及的服務,我的項目都已經開啟了。所以這里我的權限已經啟動。這里百思不得其解,最后聯系了華為技術支持定位。他們給的方案如下:
-
如果沒有啟動,需要先開啟,等待約15分鍾后,測試手機上將HMS Core緩存清理后,客戶端測試看是否OK。
-
如果已經啟動,這個有可能(極小概率出現)是因為當時API開啟時,出現了某種異常,導致華為后台系統沒有收到這個API開啟的同步消息,可以界面手動關閉下這個API開關,再重新打開,觸發消息再次同步。同樣需要將HMS Core緩存清理后,等待15分鍾后測試。
清理HMS Core緩存方法為:手機設置>應用>應用管理>HMS Core>存儲>清空緩存。
最后,果然通過關閉后重新開啟的方式,我的游戲可以正常登錄了。
原文鏈接:
https://developer.huawei.com/consumer/cn/forum/topic/0204393665510820125?fid=18
作者:鼓樓趙又廷