【华为联机对战服务】SDK初始化方法,返回1001错误码
问题描述
我们项目集成了华为联机对战SDK,在使用华为联机对战SDK内部方法时需要先调用联机对战初始化方法Client.Init初始化华为联机对战SDK。我们调用这个方法之后在Unity Editor里面运行项目,初始化方法可以调用成功,但是打包成apk在Android手机上运行时,初始化方法调用不成功,返回错误码1001。
参考文档:初始化SDK
问题分析
查看华为官方的错误码文档,对1001错误码的解释是:请求参数错误,请检查接口请求参数。
但是,若是请求参数错误,在Unity Editor里也应该访问不成功才对。不清楚是哪里出问题了,联系了华为技术支持,技术支持问我们:
-
有没有在调用初始化方法之前设置证书路径和日志打印路径:
检查之后发现,已经加上了。
-
打包时用的是IL2CPP? 还是Mono?可在Unity中“File > Build Settings… > Player Settings… > Scripting Backend” 处查看。检查之后发现我们用的是IL2CPP。技术支持表示目前联机对战SDK还不支持IL2CPP,改成Mono试一下。改成Mono之后初始化还是报错:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gIVDF4qv-1660548518566)(https://alliance-communityfile-drcn.dbankcdn.com/FileServer/getFile/cmtybbs/056/735/644/0260086000056735644.20220815140843.43156882311319356304425639834380:50530814070211:2800:0F970A220E73CBB3183ABDDAAC8223111A0D34FDF8B6AF3990C0FFD05E8BA58C.png)]
这个异常,参考了这个帖子解决了:华为联机对战服务Unity SDK初始化接口报错:鉴权失败,Operation is not supported on this platform,但是又有了一个新的异常,返回错误码-1:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tBAaUT1q-1660548518566)(https://alliance-communityfile-drcn.dbankcdn.com/FileServer/getFile/cmtybbs/056/735/644/0260086000056735644.20220815140855.50534530255779334700806656459499:50530814070211:2800:D130A224A29718BD547CDD6CE745223E219C75610EA1C58048AACF0C6C307DA1.png)]
错误码文档中的解释是:服务端处理失败。
继续咨询华为技术支持,经过不断的沟通尝试,最后定位到问题原因是:华为联机对战SDK内部使用System.Net.Http.WebRequest.dll内的方法实现网络请求,而我们项目中没有这个dll,只能使用Unity自带的api来实现网络请求,找不到联机对战SDK内部需要的方法,所以就出现了异常。我们建议华为可以使用Unity的api,这样兼容性会更好。华为技术支持表示他们用不了Unity的api。所以建议我们下载 4.5以上版本的System.Net.Http.WebRequest.dll放在项目的Plugins文件夹下。 -
我们使用了System.Net.Http.WebRequest.dll之后,在手机上运行依然报错:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m1w2Yg9z-1660548518567)(https://alliance-communityfile-drcn.dbankcdn.com/FileServer/getFile/cmtybbs/056/735/644/0260086000056735644.20220815140919.11429670674096565000258062145261:50530814070211:2800:B7927DBFD4EFF8FD113E9A86667B183383D0C83B9587F72E2EEF75E4335081D5.png)]
华为技术支持让我们检查Unity中“File > Build Settings… > Player Settings… > Managed Stripping Level ”配置的是不是Disabled,如果不是,需要改成Disabled。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9epLmpIf-1660548518567)(https://alliance-communityfile-drcn.dbankcdn.com/FileServer/getFile/cmtybbs/056/735/644/0260086000056735644.20220815140929.75825088311123132809568989156046:50530814070211:2800:A2537410798FAE1C378D7CD8AB7F1384DA1169D86660BB50DCB32489CBCB96A2.png)]
问题解决
我们使用了System.Net.Http.WebRequest.dll并且把Managed Stripping Level改成Disabled之后,打包apk在手机上运行,可以成功调用华为联机对战SDK的初始化方法,问题成功解决。
相关文章
- Linux使用退格键时出现^H解决方法
- java:安装Runtime Environment,设置Tomcat Server 的方法
- 详解MYSQL数据库密码的加密方式及破解方法
- iOS高版本备份恢复到低版本系统的方法
- 使用msbuild.exe绕过应用程序白名单(多种方法)
- paip。java 高级特性 类默认方法,匿名方法+多方法连续调用, 常量类型
- SAP UI5 Smart Table 和 Smart Filter Bar 的联合使用方法介绍试读版
- CV之SR:超分辨率(Super resolution)的简介、使用方法、案例应用之详细攻略
- Android 10.0 蓝牙遥控器确认键弹不出输入法的解决方法
- WebRTC 教程三:WebRTC特性,调试方法以及相关服务器搭建方法
- 华为云专家讲述知识图谱构建流程及方法
- 【华为云技术分享】【测试微课堂】典型测试设计方法介绍
- 【华为云技术分享】CentOS7.4系统下,手动安装MySQL5.7的方法
- 软件測试基本方法(二)之白盒測试
- 嵌入式linux开发,Ubuntu下,git下载,直接下载git网站资源方法
- TensorFlow alexnet在华为Mate10上运行方法
- Laravel 获取 Route Parameters (路由参数) 的 5 种方法
- git因commit的记录太大导致push失败解决方法
- Java中toCharArray()方法
- python计算波峰波谷值的方法(极值点)