• 【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及其以上版本就会编译失败。

    报错时的信息截图:
    

    cke_1207.png

    解决方案一:

    不是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里面加规避不必要的依赖文件

    1. packagingOptions {
    2. exclude 'core.properties'
    3. }

    2.         登陆授权时候,会弹出dialog加载转圈,导致window的DecorView状态改变,手机做的延申背景的刘海位置出现黑边。

    问题描述:

    在华为手机账号授权手机登陆,dialog加载时不出现黑边,dialog出现时刘海出现黑色覆盖页面。

    cke_38218.png

    cke_40285.png

    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中可以正常获取到国际化字符串

    cke_47626.png

    初步分析:

    鸿蒙开发可以在entry中国际化,

    如果想修改其国际化资源文件,找到js下default下i18n下zh-CN.json。然后修改成显示的文本,重新运行。

    cke_53378.png

    该问题可以参考的文档如下:

    鸿蒙基于JS搭建HelloWorld并修改国际化文件_霸道流氓气质的博客-CSDN博客

    解决方案:

    js实现国际化可参考最新的应用配置。

    该问题可以参考的文档如下:

    文档中心

    4.         接收订阅关键事件通知出错

    问题描述:

    接收订阅关键事件通知的时候,按照实例代码解析JSON内容,内容为空。

    附代码:

    1. header("Content-Type: application/json; charset=utf-8");
    2. file_get_contents("php://input");
    3. $request = json_decode($raw_post_data,false);
    4. var_dump($request);
    5. $response = new StatusUpdateNotificationResponse();
    6. if(empty( $request->statusUpdateNotification)|| empty($request->notifycationSignature))
    7. {
    8. $response->errorCode = 1; //failure
    9. $response->errorMsg = "the notification message is empty";
    10. echo $response->buildResponse();
    11. return;
    12. }

    调用了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

  • 相关阅读:
    使用python进行数据合并
    java ssm创意设计分享系统
    全网最牛,Pytest自动化测试框架-Fixture测试夹具详解(撸码实例)
    vue中实现瀑布流布局
    用Python实现基于人脸识别的门禁管理系统(附源码)
    大白话说Python+Flask入门(六)Flask SQLAlchemy操作mysql数据库
    终于有人说出为什么程序员撞破南墙也要跳槽入大厂了
    深度学习知识点:循环神经网络(RNN)、长短期记忆网络(LSTM)、门控循环单元(GRU)
    解决zip文件中文乱码问题
    商城系统需求分析
  • 原文地址:https://blog.csdn.net/weixin_44708240/article/details/126067226