- 博客(77)
- 收藏
- 关注
原创 【鸿蒙游戏技术分享 第25期】鸿蒙游戏命令行打包后无法播放背景音乐
摘要:开发者在鸿蒙游戏项目中遇到背景音乐播放异常问题,发现IDE调试正常但命令行打包的Hap文件报错。通过对比发现命令行打包的Hap文件(660574字节)比IDE生成的(675264字节)小,原因是使用zip命令添加音乐文件导致。解决方案改为不压缩形式添加音乐文件后问题解决。建议关注鸿蒙游戏官网(https://developer.huawei.com/consumer/cn/games/)和华为开发者学堂获取更多支持。(142字)
2025-06-10 16:31:35
286
原创 【鸿蒙游戏技术分享 第24期】转换ID接口报错{“rtnCode“:2,“errMsg“:“get token info failed.“}
游戏服务ID转换接口报错分析 在将游戏从双框架迁移至单框架过程中,调用转换ID接口时出现错误(rtnCode:2,errMsg:"gettokeninfofailed")。经分析,主要原因为accessToken参数未进行URL编码处理。建议开发者在调用接口前对参数进行规范化编码。更多技术细节可参考华为鸿蒙游戏官方文档及开发者学堂课程。
2025-06-10 16:16:44
272
原创 【鸿蒙游戏技术分享 第23期】审核驳回:启动游戏,登录账号后,点击“进入游戏”提示“登录失败,请稍后重试”,无法进入游戏。
鸿蒙游戏APP上架审核因"登录失败"被驳回,日志显示指纹证书校验错误(1001500001)。经排查发现可能原因包括:client_id配置错误、指纹证书未正确配置或新旧包签名不一致。最终确认问题源于使用了错误的发布证书(p7b文件),重新选择正确证书后测试通过。建议开发者仔细检查证书配置,并参考官方文档进行调试。更多资源可访问鸿蒙游戏官网和开发者学堂。(150字)
2025-06-09 17:11:46
189
原创 【鸿蒙游戏技术分享 第22期】
摘要:华为鸿蒙游戏服务集成过程中,调用unionLogin接口时出现登录提示重复弹出的问题。经排查发现,当用户选择"华为账号登录-玩过,继续游戏"后,因verifyLocalPlayer接口的thirdOpenId参数长度超过128字符,导致云侧合规校验失败,未能记录登录方式。解决方法是调整thirdOpenId参数长度至128字符以内。更多技术支持可通过鸿蒙游戏官网或华为开发者学堂获取。
2025-06-09 16:29:46
126
原创 访问设备文件
文章介绍了在鸿蒙系统中通过多种方式访问和管理设备文件的方法。首先,开发者可以使用DevEco Studio内置的DeviceFileBrowser工具进行文件管理,支持查看、搜索、新建、删除文件以及文件的上传下载操作。其次,通过命令行工具bftpd可以访问应用沙箱目录,适用于批量推送资源文件等场景。此外,文章还详细介绍了通过CoreFileKit访问和管理应用文件及用户文件的方法,包括使用FilePicker选择文档、音频、图片、视频等文件,并通过ohos.file.fs API进行文件处理。最后,文章提到
2025-05-13 17:14:43
952
原创 推送场景方案选取
HarmonyOS NEXT为游戏场景提供了多样化的消息推送能力,主要包括PushKit、代理提醒和NotificationKit三种方案。PushKit支持云侧后台推送,分为默认分类和订阅分类,默认分类适用于营销类推送,每天限制2条;订阅分类则需用户主动订阅,推送量可达3000条/天。代理提醒适用于本地定时推送,如游戏内资源提醒,最多支持30个有效提醒。NotificationKit用于游戏前台时的本地通知发布。开发者需根据具体需求选择合适的推送方案,并遵循相应的开发步骤和权限申请流程。
2025-05-13 16:41:54
973
原创 应用权限申请
应用权限管控是保护系统数据和功能不被不当或恶意使用的重要机制。权限分为系统授权(system_grant)和用户授权(user_grant),前者在应用安装时自动授予,后者需用户手动授权。申请权限的流程包括声明权限、向用户申请授权等步骤,对于受限权限,需额外申请使用权限。在游戏场景中,某些媒体读写权限已不开放,需使用替代方案。此外,剪贴板权限在API version 12后增加了权限管控,需申请受限权限后方可使用。应用安装时若未申请相应权限证书,将导致安装失败。开发者可通过代码跳转至系统设置的权限页面,引导
2025-05-13 16:24:21
585
原创 【鸿蒙游戏技术分享】鸿蒙文件基础操作总结
我们游戏项目集成了华为应用内支付服务,在支付成功后需要获取华为接口返回的加密的JWS格式的订单信息,并上报到我们服务端解密后获取对应的json格式的订单信息做校验。因此想到了用文件读写保存的方式,鸿蒙新手简单记录下鸿蒙文件基本读写问题。代码完成后运行代码,可使用deveco工具找到"/data/storage/el2/base/haps/entry/files"路径并查看该文件,保存本地。打印出来的实际路径为"/data/storage/el2/base/haps/entry/files"。
2025-04-29 15:37:29
263
原创 【鸿蒙游戏技术分享】转换ID接口报错{rtnCode2,errMsgget token info failed.}
我们安卓游戏在原华为安卓渠道的玩家标识属于playerId和openId混用情况,现在上架鸿蒙游戏需要配置转移appid映射关系,但是只能从playerid和openid中选择一个玩家标识字段,作为转移的玩家标识。华为侧给的解决方案是配置转移映射关系时先选择一种玩家标识,比如选择openid,然后unionlogin接口返回的gamePlayerId就是原华为渠道玩家登录游戏的playerid,再用获取到的gamePlayerId调用。鸿蒙游戏登录,联合登录,转换ID。我们按照这个流程测试,请。
2025-04-29 15:36:47
314
原创 【鸿蒙游戏技术分享】鸿蒙联合登录接口返回Code: 1002000001, message: System internal error.
这两处配置不正确,都会返回该错误。按照对方发的指导,发现我没有在工程的entry模块module.json5文件中配置client_id和app_id,并且也没有在AGC后台添加证书指纹。于是我按照指导,完成这两处配置,问题解决。报错2:鸿蒙联合登录接口返回Code 1002000017, message Illegal application identity.接口,接口返回错误信息错误码1002000001, 错误信息System internal error。报错1:集成鸿蒙游戏服务。
2025-04-29 15:29:29
253
原创 【鸿蒙游戏技术分享】鸿蒙应用安装报错install failed due to grant request permissions failed
,出现该问题的原因是默认应用的等级是normal,只能使用normal等级的权限,但是我们项目使用了system_basic或system_core等级的权限,所以出现该报错。针对该问题,建议我们参考如下文档申请ACL提权和项目相关配置,即可解决问题。
2025-04-29 11:56:21
270
原创 【鸿蒙游戏技术分享】鸿蒙应用调用LoginWithHuaweiIDRequest报错1001502009
我们传入的state值是一个函数,这种写法应该只是把Date.now.tostring 函数记录下来了,没有调用获取值,我们修改为先获取到Date.now.tostring() 的值,然后再传递给state,再次请求接口,接口调用成功,问题解决。经过仔细核实,发现我们配置的metadata位置是错误的,文档中要求的是与abilities同级别下,创建一个matedata,但是我们实际配置到了abilities节点内的matedata。经过华为技术支持答疑后,我们修改配置后问题解决。分析日志,暂未发现报错。
2025-04-29 11:43:25
1078
原创 【鸿蒙游戏技术分享】鸿蒙应用安装报错9568322
安装报错9568322,signature verification failed due to not trusted app source.但是按照官方提供的解决措施排查,我们是正常的,p7b签名文件中含有我们的设备udid。我们参考华为技术给出的定位解决,修改使用测试签名,重新出包后问题解决。技术支持解释到当前正式签名是无法自测安装的,建议我们切换测试签名。联系了华为技术人员,他们建议我们通过如下啊命令抓取安装日志。更多安装错误码处理案例可参考:bm工具错误码。表明当前使用的是正式签名。
2025-04-29 11:40:25
365
原创 【鸿蒙游戏技术分享】华为鸿蒙应用内支付订单状态查询接口返回1001880006,rights invalid
{rootUrl}/order/harmony/v1/application/order/status/query,返回错误信息。平台,在“我的项目”中选择目标应用,获取“项目设置 > 常规 > 应用”获取APP ID。),对方告诉我, “rights invalid”应该是appid使用的不正确。在开发者联盟上查到错误码1001880006对应的描述和解决办法,如下。时aid的值需要与当前测试的应用的APP ID一致。按照指导,我重新获取了APP ID,问题解决。集成华为鸿蒙应用内支付服务,调用。
2025-04-29 11:30:04
141
原创 【鸿蒙游戏技术分享】华为鸿蒙应用内支付订单状态查询接口返回1001880006,JWT signature time is later than the current time!
,对方告诉我,从错误信息“JWT signature time is later than the current time!{rootUrl}/order/harmony/v1/application/order/status/query,返回错误信息。exp和iat两个参数我传的时间戳单位是ms,导致JWT有效期晚于当前时间,改成以s为单位的时间戳,问题解决。时传的JWT有效期有问题。JWT的有效期是指exp-iat,其中exp和iat两个参数的时间戳单位是s。集成华为鸿蒙应用内支付服务,调用。
2025-04-29 11:08:13
225
原创 【鸿蒙游戏技术分享】华为联运游戏或应用审核驳回:未调用检测更新接口(checkAppUpdate)
4.如果对日志做过滤,请输出关键字: UpdateSDK version is:xxx信息日志,这个是审核侧判断是否调用检测更新接口的依据。应用提交华为渠道审核,审核驳回:发现未调用检测更新接口(checkAppUpdate)3.建议不要对提审apk包做二次封装、加固、限制输出日志等操作;5.按照上述检查,仍未解决问题,可以联系华为技术支持(提交。
2025-04-29 10:57:23
184
原创 【鸿蒙游戏技术分享】华为鸿蒙使用应用内支付秘钥生成JWT时返回 Illegal base64 character a
指导生成token时,返回错误信息java.lang.IllegalArgumentException: Illegal base64 character a。),对方告诉我,参与base64编码的秘钥不能有换行或其他格式问题。集成华为鸿蒙应用内支付服务服务端接口,按照。于是我将换行符去掉,问题解决。
2025-04-29 10:53:31
330
原创 【鸿蒙游戏技术分享】鸿蒙游戏兼容平板、PC需要哪些操作
我们游戏支持设备包含手机、平板和PC,刚开始接触鸿蒙,不太清楚在哪里设置兼容设备,研究了下文档并写下来做个记录。鸿蒙游戏,平板,PC。
2025-04-29 10:51:01
149
原创 【鸿蒙游戏技术分享】鸿蒙游戏登录获取玩家信息接口报错3001
我们参考华为技术给出的排查建议,自检没有发现异常,华为技术排查发现:华为侧没有接到来自我方的业务请求,且他们使用我们的业务参数,在postman客户端上可以请求成功,而我们使用的postman是网页版。华为技术初步怀疑是网页版postman存在网络限制,建议我们更换后客户端postman,更换后问题解决。检查获取AccessToken的AuthCode是否正确:AuthCode从客户端。鸿蒙游戏登录,服务器,getPlayerInfo,3001,中获取凭证Access Token接口指导,请务必参考。
2025-04-28 11:47:52
268
原创 【鸿蒙游戏技术分享】鸿蒙游戏登录报错1001502003
行 1617: 02-01 11:40:50.148 1315 1315 I A00000/ACCOUNT_TAG: No clientId in com.snailgame.snailharmonysdk(OHOS::CloudAuth::BundleManagerHelper::ExtractClientIdFromMetadata:80)自检发现我们确实没有配置clientId和appid,参考文档配置后,问题解决。集成华为鸿蒙游戏登录功能,登录接口报错。鸿蒙游戏登录,1001502003。
2025-04-28 11:46:43
177
原创 【鸿蒙游戏技术分享】支付购买接口报错1001860001,无法支付
联系了华为技术人员,并提供订单号详情,华为后台查到支付时是银行侧返回了错误,原因是使用的测试账号所绑定的银行卡信息异常,可能是证件号异常或者超过有效期,建议检查下相关账号,或者换个银行卡测试支付。我们HarmonyOS NEXT游戏项目集成应用内支付服务,接入支付购买接口返回错误码1001860001,看文档上。的描述,该错误码对应描述为内部系统错误,看不出来报错具体原因。经核实,银行卡确实信息异常,换个银行卡支付正常了,问题解决。应用内支付服务,支付购买接口。
2025-04-28 11:45:34
171
原创 【鸿蒙游戏技术分享】应用内支付服务补单接口报错1001860001 System internal error
要求,要根据返回信息传参,即第一次查询时不传该参数,之后查询传参上次查询返回的continuationToken,直到接口不再返回continuationToken。联系了华为技术人员,并提供全量系统日志。经过服务端定位分析,我们补单接口调用的时候continuationToken参数有传参,该参数是分页查询的数据定位标志,传参需要遵循。根据文档要求,即第一次将continuationToken参数去掉后,请求成功,之后返回的continuationToken为空,表示订单数据已经请求到全部了。
2025-04-28 11:43:53
437
原创 【鸿蒙游戏技术分享】使用华为鸿蒙自动签名运行一直报错no signature file
联系华为技术支持,查看工程级下的build-profile.json5文件,发现我们如下位置的签名确实没有生成。我们项目集成华为鸿蒙应用时,使用自动签名方式打包运行,一直报错。技术支持建议我们删除如下位置的相关签名文件。重新自动签名后,该问题解决。
2025-04-28 11:42:51
235
原创 【鸿蒙游戏技术分享】集成华为鸿蒙应用内支付服务,支付报错1001860003,Incorrect product information
1001860003表示传入的商品ID或者商品类型有误,需要到AGC后台查看对应商品是否存在,并且要确保支付接口的productId参数的值与AGC后台配置的商品id保持一致。接口发起购买,拉起收银台失败,返回错误码1001860003,错误信息Incorrect product information。经排查,我们代码中传给productId的值与AGC后台配置的不一致。重新配置AGC上商品信息,问题解决。游戏集成华为应用内支付功能,且在AGC后台配置了商品,调用。应用内支付服务,华为鸿蒙。
2025-04-28 11:41:43
282
原创 【鸿蒙游戏技术分享】集成华为鸿蒙应用内支付服务,支付报错1001860001,System internal error.
,经技术检查确认日志,搜索日志HMS_IAP,看到创建订单时候报错30001,并且提示错误applicationID没有配置。,看到需要配置应用身份信息,含clientid和appid,这边appid遗漏,根据文档配置后测试支付正常,问题解决。根据该错误码的描述信息,看不出具体错误原因。应用内支付服务,华为鸿蒙。
2025-04-28 11:40:17
180
原创 应用运维能力DFX
应用HarmonyOS NEXT化过程中的典型故障定位、运维业务场景如下:分类场景名称简述运行态运维框架设计应用记录自定义时间、记录用户ID和属性。应用订阅系统事件。接入应用自己的云服务。故障统计和质量分析。接入华为云服务。错误管理设计异常通知接口和信息。故障恢复设计。日志设计Hilog日志设计(日志级别设计、开启机制)。HiTrace设计(打点设计、开启机制)。崩溃故障定位(CppCrash JSCrash)HiAppEvent(订阅崩溃故障事件,获取日志)。
2025-04-28 11:06:25
251
原创 ArkTS并发能力
并发是指在同一时间内,存在多个任务同时执行的情况。为了提升应用的响应速度与帧率,避免耗时任务对UI主线程的影响,ArkTS提供了异步并发和多线程并发两种处理策略。异步并发是指异步代码在执行到一定程度后会被暂停,以便在未来某个时间点继续执行,这种情况下,同一时间只有一段代码在执行。ArkTS通过Promise和async/await提供异步并发能力,适用于单次I/O任务的开发场景。多线程并发允许在同一时间段内同时执行多段代码。
2025-04-28 11:03:37
635
原创 模块化设计与包管理
一个应用通常会包含多种功能,将不同的功能特性按模块来划分和管理是一种良好的设计方式。在开发过程中,我们可以将每个功能模块作为一个独立的Module进行开发,Module中可以包含源代码、资源文件、第三方库、配置文件等,每一个Module可以独立编译,实现特定的功能。这种模块化、松耦合的应用管理方式有助于应用的开发、维护与扩展。
2025-04-28 11:00:56
958
原创 UI封装
ArkUI提供了一种轻量的UI元素复用机制@Builder,该自定义组件内部UI结构固定,仅与使用方进行数据传递。@Builder@Builder通过按引用传递的方式传入参数,才会触发动态渲染UI,并且参数只能是一个,因此UI相关的参数建议都放在一个类里面。@Component/ * 使用@Prop装饰器,在@Builder函数的参数刷新时能够同步刷新@Component自定义组件中的UI状态* /build() {Row() {Column() {@Builder。
2025-04-28 10:56:11
1019
原创 证书和签名
证书分为发布证书和调试证书,发布证书和发布 Profile 用于在应用上架时对 APP 进行签名,调试证书和调试 Profile 用于在本地调试时对 HAP 进行签名。证书的生成和签名结合在一起,请参考下边配置签名中的文档。
2025-04-27 18:13:14
1025
原创 【鸿蒙游戏技术分享】鸿蒙hvigorw打包报错code: 109. Details: Init keystore failed
联系),技术支持解释:鸿蒙签名工具对java的jre版本有要求,如果使用java version 1.8等低版本,会有该报错,建议我们先升级java版本。Hvigorw打包,code: 109. Details: Init keystore failed。确实比较低,升级到java17后,问题解决。使用hvigorw工具打包,报错。联系华为技术支持沟通(提。
2025-04-27 16:01:24
359
原创 【鸿蒙游戏技术分享】集成广告服务调用激励广告接口报错21800003
我们项目集成鸿蒙广告服务接口,按照接口文档调用激励广告接口报错21800003。根据文档提示,先在模块的module.json5文件中申请广告跟踪权限。这两步操作我们没有处理,按照文档要求补充后接口返回成功,问题解决。),技术反馈看日志oaid没有获取,调用接口之前要先。广告服务,21800003。
2025-04-27 15:01:15
249
原创 【鸿蒙游戏技术分享】联合登录接口报错1011或者100015
检查entry下面的moudle.json5的metadata中的clientid和appid是否和华为开发者后台对应的参数一致。我们参考华为技术给出的排查建议,发现unionLogin的参数accountIcon大小超过35kb,修改图标并替换后,问题解决。· 检查unionLogin接口的传参accountIcon总大小是否超过35kb,该图标有大小限制。经过修改项目中实际包名后,问题解决(路径:AGC-项目管理-应用-包名/appid/clientid)。,自动签名不支持联合登录。
2025-04-27 11:56:48
321
原创 【鸿蒙游戏技术分享】联合登录接口报错网络异常1002000002
参考华为技术的指导再检查一遍,发现在module.json5文件的metadata中有配置clientid,但是appid遗漏配置了,补充配置后,问题解决。再检查下签名证书以及指纹配置和module.json5文件中的clientid、appid是否都已配置。接口错误码提示是网络异常,但是我检查了网络是正常的,并且切换了热点测试,还是报错网络异常。联系华为技术支持,技术让我按照。
2025-04-27 11:51:56
284
原创 【鸿蒙游戏技术分享】调用游戏服务和应用内支付服务相关接口报错cannot read property init of undefined
使用deveco集成华为应用服务中的游戏服务和应用内支付服务,导入游戏服务gamePlayer包和应用内支付服务iap包后,调用接口,在模拟器上运行安装均报错提示:cannot read property init of undefined。),技术回复目前华为应用服务接口调测运行不支持模拟器,需要在真机上运行测试。按照华为技术回复,签名后在真机上安装运行,可以正常调用接口。
2025-04-27 11:49:51
147
原创 华为鸿蒙签名打包报错BundleName in the project configuration does not match that in the SigningConfigs
检查签名的配置,发现.p7b文件与.cer文件都是在华为AGC后台生成的,我们两个应用的.p12签名原文件都是一样的,但是.p12文件需要上传到华为平台生成.p7b文件与.cer文件再签名,怀疑这个步骤可能与应用名称绑定了,即不同的应用配置签名信息时都要上传.p12文件并下载.p7b文件与.cer文件才可以。其中,app.json5文件中的包名是com.lianyun.harmOS.huawei,SignConfigs中配置的包名是lianyun.harmos.huawei。
2025-04-27 11:45:11
362
原创 【鸿蒙游戏技术分享】鸿蒙NEXT手机升级rom后Udid变更,重新签名需要替换p7b文件和cer文件
然后按照文档操作,下载新的p7b文件进行签名(cer文件未重新生成下载),重新打包后安装还是报错“signature verification failed due to not trusted app source.”。使用命令行重新获取设备Udid,并跟华为AGC后台已经配置的设备Udid对比,发现Udid有变动。签名等配置信息都是之前已经配置好的,且之前一直能正常安装,只是升级了rom版本。怀疑cer文件也跟设备有关,于是又替换新的cer文件,重新打包,可以安装成功,问题解决。
2025-04-27 11:37:24
360
原创 【鸿蒙游戏技术分享】鸿蒙获取玩家标识接口返回{“rtnCode“:-1,“errMsg“:“Query Player Accounts Error.“}
联系),技术支持说该接口要在unionLogin接口登录成功后才能调用。如果转移回退或者关联解绑以后,也需要再次调用unionLogin接口并且登录成功后才能查询到玩家信息。检查发现,我是在解绑后,还未调用unionLogin接口进行登录就调用了该接口查询玩家信息。按照对方的指导,在unionLogin接口登录成功后再调用,问题解决。报错responseBody={"rtnCode":-1,"errMsg":"Query Player Accounts Error."}于是我联系华为技术支持沟通(提。
2025-04-27 11:34:58
190
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人