Safety Detect SDK报1212错误‘need update kit’,求解决方案
问题场景
使用Safety Detect SDK生成token时,返回错误提示need update kit,错误码1212。两台配置一致的P40 lite设备(均搭载HMS Core 6.6.0.332、Android 12)仅一台出现该问题,应用市场无可用更新,已尝试更新agcp库至1.6.0.300、Push Kit至6.5.0.300,问题未解决。
生成token的代码:
String appId = AGConnectServicesConfig.fromContext(cordova.getContext()).getString("client/app_id"); SafetyDetectClient mClient = SafetyDetect.getClient(getApplicationContext()); Task<SysIntegrityResp> task = mClient.sysIntegrity(nonce.getBytes(StandardCharsets.UTF_8), appId); task.addOnSuccessListener(response -> { Log.i(TAG, "Success getting token"); }).addOnFailureListener(e -> { if (e instanceof ApiException) { ApiException apiException = (ApiException) e; Log.e("SysIntegrity", "Error: " + SafetyDetectStatusCodes.getStatusCodeString(apiException.getStatusCode()) + ": " + apiException.getMessage()); } else { Log.e("SysIntegrity", "ERROR:" + e.getMessage()); } });
排查与解决步骤
检查Safety Detect独立组件版本
HMS Core主版本一致不代表子组件版本相同。进入设备设置>应用和服务>应用管理,搜索“HMS Core Safety Detect”查看版本号,对比两台设备差异。若版本不一致,可通过可信第三方APK源下载对应架构的最新组件APK手动安装,或在HMS Core应用内进入我的>检查更新触发组件更新。清除HMS Core与应用缓存数据
在故障设备上依次操作:设置>应用和服务>应用管理>HMS Core>存储>清空缓存、删除数据- 对当前应用执行同样的缓存/数据清除操作
- 重启设备后重试生成token
对齐Safety Detect SDK与HMS Core版本
确保项目中Safety Detect SDK依赖版本与设备HMS Core 6.6.0.332兼容,建议使用同主版本的SDK(如6.6.x)。在项目build.gradle中确认依赖:implementation 'com.huawei.hms:safetydetect:6.6.0.300'重装HMS Core组件
卸载HMS Core的更新版本,从应用市场重新下载安装最新版HMS Core,完成后检查Safety Detect组件是否自动更新至兼容版本。验证应用签名配置
确认故障设备上安装的应用签名、包名与AGConnect后台配置完全一致,签名指纹未出现配置错误。
内容的提问来源于stack exchange,提问作者Mariusz Kaczmarczyk

