集成Health Kit时因证书问题出现错误码50063的解决方案

  • Post category:Android

一、问题描述及操作

应用集成Health Kit SDK后,在华为手机上进行登录授权时,返回错误码50063。

1、查看相关错误码。‘50063’在Health Kit错误码中的描述是“安装的HMS Core APK版本不匹配,无法调用接口。”提供的解决方案是“请安装最新版本的HMS Core(APK)后,再调用接口”。

2、根据文档中提供的解决方案,卸载了手机设备中的HMS Core APK,重新更新到最新版本后,仍返回错误码50063。

3、调用HuaweiApiAvailability#isHuaweiMobileServicesAvailable(Context context)接口,检测HMS Core (APK)在设备上是否成功安装和集成时,返回结果1,表示在设备上没有发现HMS Core(APK),预期结果应该返回0。

4、使用‘adb logcat > log.txt’获取完整日志,进行日志分析。

二、原因分析

在日志中筛选“HMSSDK_”,可以看到关键日志“E/HMSSDK_X509CertUtil: Not include alias 052root”。

根据日志显示,是因为hmsrootcas.bks证书中没有发现052root信息,导致校验失败,从而引起登录失败。正常情况下,如果使用Maven仓集成SDK时,此hmsrootcas.bks证书文件会在打包时自动放到apk的assets目录下,一般不会出现问题。

如果没有日志,也可以借助工具查看APK中的hmsrootcas.bks是否包含052root:

三、解决方案

1、检查项目工程中的assets资源文件目录中是否存在hmsrootcas.bks文件,如果存在的话,可以删除,在打包时hmsrootcas.bks会自动打包到apk中。

2、如果assets资源文件目录中不存在hmsrootcas.bks文件或删除后,仍出现此问题,可以手动集成包含052root信息的bks文件,具体操作如下:

1)访问链接,下载SDK文件。

2)解压下载的文件,根据以下路径找到bks文件,并集成到项目主工程下的assets中:hmssdk-eclipse-6.9.0.300\Security-ssl\assets。仅放置hmsrootcas.bks文件即可。

3)重新编译项目。

更多接入华为运动健康服务常见问题,请参见FAQ

了解更多详情>>

访问华为开发者联盟官网
获取开发指导文档
华为移动服务开源仓库地址:GitHubGitee

关注我们,第一时间了解 HMS Core 最新技术资讯~