HarmonyOS鸿蒙Next中【游戏多媒体】创建实例失败,错误码:4001,错误信息:Verifying the signature param is invalid Reason: 100114
HarmonyOS鸿蒙Next中【游戏多媒体】创建实例失败,错误码:4001,错误信息:Verifying the signature param is invalid Reason: 100114
背景
调用游戏多媒体SDK创建实例的时候突然报错:
E call request failed by failed! srcCode is 100114, failedMsg is Verifying the signature param is invalid
E call login request failed, by rtcCode: 4001, rtnMsg: Verifying the signature param is invalid Reason: 100114
分析
根据报错信息可以定位到是签名参数无效,签名相关代码如下:
private void setAccessSign(EngineCreateParams params) {
String appId = BuildConfig.agcAppId;
// 当前游戏密钥的获取方式仅做demo示例,开发者需要放到远端服务器下发给apk
String gameSecret = BuildConfig.gameSecret;
// 当前随机数方式仅做demo示例,开发者需要使用更安全的算法来生成随机数
String nonce = String.valueOf(RandomUtil.getRandomNum());
String timestamp = String.valueOf(System.currentTimeMillis());
params.setSign(Signer.generate(appId, openId, nonce, timestamp, gameSecret)); // 设置签名信息
params.setNonce(nonce);
params.setTimeStamp(timestamp);
}
由此,可以猜测大概率是第8行有问题。
解决方法
方案一
在第8行里的gameSecret信息比较可以,因此去查看了一下官方文档使用签名初始化SDK,最终确定确实是gameSecret参数填写错了。
正确的gameSecret信息应该是自己的AGC应用下的“游戏服务”下的“游戏私钥”。如下:
解决:将gameSecret更改为正确的信息即可
方案二
由于签名只会在应用开启安全加固的情况下才会使用到,因此,当关闭了安全加固即可忽略签名信息。可以以此来规避签名参数的检查。
注意:如果不是自己主动想要关闭安全加固,不建议采纳此方案,虽然它有效
更多关于HarmonyOS鸿蒙Next中【游戏多媒体】创建实例失败,错误码:4001,错误信息:Verifying the signature param is invalid Reason: 100114的实战教程也可以访问 https://www.itying.com/category-93-b0.html
更多关于HarmonyOS鸿蒙Next中【游戏多媒体】创建实例失败,错误码:4001,错误信息:Verifying the signature param is invalid Reason: 100114的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
错误码4001表示在HarmonyOS鸿蒙Next中创建【游戏多媒体】实例时,签名参数验证失败。具体原因代码100114指出签名参数无效。请检查以下内容:
- 确保使用的签名参数正确且完整;
- 验证签名算法是否符合系统要求;
- 确认签名密钥与应用的配置一致。
若问题持续,建议查阅官方文档或联系技术支持获取进一步帮助。