【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

{{o.name}}
{{m.name}}

猜你喜欢

转载自my.oschina.net/u/4478396/blog/5567149