• 【AGC】AppGallery Connect SDK遇到url is null问题分析


    【问题背景】

    AppGallery Connect(简称AGC)致力于为应用的创意、开发、分发、运营、经营各环节提供一站式服务,构建全场景智慧化的应用生态体验。其中开发环节提供了很多实用的服务,这些服务也支持了很多的平台,包括Android,iOS, Web等等。最近在Android应用中使用AGC的服务时会遇到如下的问题

    java.security.InvalidParameterException: url is null

    at com.huawei.agconnect.credential.obs.n.a(Unknown Source:42)

    at com.huawei.agconnect.common.api.Backend.call(Unknown Source:17)

    at com.huawei.agconnect.credential.obs.o.a(Unknown Source:283)

    at com.huawei.agconnect.common.api.BackendService.sendRequest(Unknown Source:0)

    at com.huawei.agconnect.auth.internal.b.a.a(Unknown Source:20)

    at com.huawei.agconnect.auth.internal.b.a.a(Unknown Source:1)

    at com.huawei.agconnect.auth.internal.a.a(Unknown Source:24)

    此问题会出现在多个不同的服务中,导致请求全部都异常了。

    【解决方法】

    此问题得原因出在一个AGCP插件上,我们在开发AGC的服务时需要从AGC的管理台中下载一个agconnect-services.json文件,文件中包含了应用所需要的很多参数,其中就包括了url这个参数。然后我们需要接入AGCP的插件去读取json文件中的内容。而报了url is null的错误就说明url这个参数没有被AGCP读取到。可能是一下几种场景:

    1. 首先检查json文件中是否有url这个参数,这个参数的层级如下:

      cke_2415.png

    如果发现json文件中没有url这个参数,则需要去agc管理台中为项目选择数据存储地后重新下载json文件。 

    cke_4273.png

    2.Json文件没有放在指定的位置,一般json文件需要放在Android项目应用级根目录下,AGCP插件会向此指定位置读取文件

    3.既然AGCP被设定需要向指定位置读取文件,那么文件的名称也不能改变,必须为agconnect-services.json文件。

    4.项目级build.gradle文件中需要添加agcp插件地址

    cke_9078.png

    5.在应用级build.gradle文件中应用相关插件

    cke_12420.png

    这里有一点需要注意的是agcp插件的引入需要在系统application之下,否则agcp插件的引入将不生效,也会导致url is null的情况。

     

     欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh

  • 相关阅读:
    [ZJCTF 2019]NiZhuanSiWei - 伪协议+文件包含+反序列化
    LeetCode 619, 58, 24
    机器学习周记(第四十三周:MCformer)2024.6.10~2024.6.16
    国产5G手机20天销量不及苹果一天,被iPhone15按在地上摩擦
    Spring之拦截器
    【C/C++】自定义类型 枚举&联合
    Redis——布隆过滤器
    dijkstra算法+链表储存+优先队列
    优化——多目标规划
    结合实战,浅析GB/T28181(八)——视频丢包(卡顿、花屏、绿屏)排查
  • 原文地址:https://blog.csdn.net/weixin_44708240/article/details/126403636