【HMS core】【FAQ】Account、IAP、Location Kit and HarmonyOS典型问题合集1
1. 引用定位服务SDK后,版本高于6.2.0.300时,编译报错。
问题描述:
在集成IAP时,遇到鸿蒙2.0版本客户App会出现无法启动的情况,更新最新版本,使用SDK的最新版本,切换到com.huawei.hms:location:6.2.0.30及其以上版本就会编译失败。
报错时的信息截图:
解决方案一:
不是location kit升级导致的,建议查一下AS同步项目时的一些报错,如:
Caused by: org.gradle.workers.internal.DefaultWorkerExecutor$WorkExecutionException
Caused by: com.android.builder.merge.DuplicateRelativeFileException
这两个解决方案可以参考:
https://stackoverflow.com/questions/57997668/project-fails-to-compile-after-renaming
解决方案二:
(如果一直使用这个版本:implementation 'com.huawei.hms:location:6.0.0.302',同样的环境,升级到6.2.0.300或6.3.0.302就会提示编译报错,是否需要增加剔除libstlport_shared.so,也没有使用相关的库,是否因为Location的库包含这个so)
在app/build.gradle里面加规避不必要的依赖文件
2. 登陆授权时候,会弹出dialog加载转圈,导致window的DecorView状态改变,手机做的延申背景的刘海位置出现黑边。
问题描述:
在华为手机账号授权手机登陆,dialog加载时不出现黑边,dialog出现时刘海出现黑色覆盖页面。
agc登陆时,华为账号进行授权登陆,在授权的时候弹出dialog,流海出现黑色覆盖。
初步分析:
登陆授权时候,会弹出dialog加载转圈,导致window的DecorView状态改变,手机做的延申背景的刘海位置出现黑边
解决方案:
经过和账号研发以及HMS Core 框架开发联合确认,这个是之前已经定位的已知问题,650已经提了需求的,框架这边有个界面没有做挖空屏适配,到时候应该需要和账号那边一起调一下,因为仅仅修改框架透明页的挖空屏适配也是无法解决问题的。后面的HMS Core 640版本升级了会得到解决。
3. 鸿蒙开发,在library中js如何实现国际化
问题描述:
library中,js实现国际化,在i18n下的zh-CN.json添加字符串(如下图),通过this.$t('strings.app_not_install')获取字符串,希望在library中可以正常获取到国际化字符串
初步分析:
鸿蒙开发可以在entry中国际化,
如果想修改其国际化资源文件,找到js下default下i18n下zh-CN.json。然后修改成显示的文本,重新运行。
该问题可以参考的文档如下:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/118274050
解决方案:
js实现国际化可参考最新的应用配置。
该问题可以参考的文档如下:
4. 接收订阅关键事件通知出错
问题描述:
接收订阅关键事件通知的时候,按照实例代码解析JSON内容,内容为空。
附代码:
调用了IAP的接口接收订阅事件网址:https://www.zymap.xyz/hwMessage.php
实际返回的结果:{"result":1,"errorMsg":"the notification message is empty"}
初步分析:
是服务器方订阅关键事件通知,无法解析JSON的问题。
订阅事件地址配置可参考这个文档:
注意:建议所有提供订阅商品的App均配置该通知地址,以便接收订阅商品关键事件通知,为顾客提供更好、更及时的服务。另外,通知地址必须基于HTTPS并且配置有商业域名机构颁发的证书。
解决方案:
配置了订阅通知仍然接收不到。检查发现:json文件本身有问题啊,格式不正确,转义的时候出现问题,导致json数据破坏了
所以是框架侧有没有处理过,对这些数据有没有做操作。并且接收订阅通知内容要使用string来接受。
欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh