在使用华为AGC云数据库服务,可能会遇到对象类型创建失败的问题,我总结了遇到该类问题可以按照以下思路分析解决,如果有朋友希望使用云数据服务,也可以查看我的上一篇文章。

问题相关日志

集成CloudDB的时候,经常会遇到对象类型创建失败的问题,典型的日志有:

1、提示ObjectType数量不匹配

NaturalBase: GenerateDiffSchemas: remove ObjectType is not supported. count of ObjectType is less than current

2、对象类型协商失败

E/NaturalBase: OpenNaturalStore: negotiate failed.
W/AGConnectCloudDB: openCloudDBZone: failed to create or open a cloudDBZone.

3、scheme未同步

[NaturalCloudSyncModule][OnConnected]: negotiate schema.
[PushMessageAndNotifyStoreCv] Schema is UnSynced

4、ObjectType版本已修改,但ObjectType未修改

E/NaturalBase: CreateObjectType: ObjectType version has changed, but ObjectType has not changed.
E/AGConnectCloudDB: createObjectType: failed to create ObjectType into the AGCConnectCloudDB.

问题原因
出现这个问题,主要的原因就是你的Android的项目里,ObjectType版本对应的文件,与AGC云侧的对象类型不一致导致的。

AGC云侧的,可以在这边查看:

Android项目中,主要看ObjectTypeInfoHelper以及里面对应的Class。

问题解决三板斧:
1、在AGC云侧重新导出ObjectTypes
出现这个问题,最大的原因就是项目里面的ObjectType和云侧不一致导致的问题。这个时候就需要重新导出:

在AGC界面的 : 我的项目 – 构建 – 云数据库 路径下,点击对象类型页签,在版本后面选择你要导出的版本,然后点击导出。

导出的时候,选择JAVA – android 然后输入一个包名。

https://communityfile-drcn.op.hicloud.com/FileServer/getFile/cmtybbs/150/224/722/0900086000150224722.20201223110419.42596053708384115085838949102477:50520413064811:2800:153C0C64F676C9873C026FB961E418577119FEC1D780EDDF130C164D096931E3.png

导出完成后,将zip中的文件,解压到你的项目路径下即可。

2、检查对应匹配的版本
对象类型文件中,有两个Version很重要,使用的时候也需要重点关注。 也就是ObjectTypeInfoHelper文件中的

1、 FORMAT_VERSION:需要和SDK版本相对应。

当导出的FORMAT_VERSION = 1时,请使用1.2.2以下版本的CloudDB的SDK,推荐使用1.2.1.301

当导出的FORMAT_VERSION = 2时,请使用新版本CloudDB的SDK,建议使用1.2.3.301。

2、 OBJECT_TYPE_VERSION

这个就是在AGC界面导出时,在ObjectType上选择的Version,这里一般导出无需修改。

https://communityfile-drcn.op.hicloud.com/FileServer/getFile/cmtybbs/150/224/722/0900086000150224722.20201223110428.80502027279591479777169928900767:50520413064811:2800:D0C6A656C4D295C54CB7E526E0E870A80620FE6528B4499DCF1C824A155B6A3E.png

3、端侧原本的应用,卸载以后再重新安装

如果你设备上之前安装过有问题的ObjectType,直接覆盖安装的话,手机上保留原本老应用的缓存。导致创建对象类型失败。

正确的操作步骤:

1、 重新打包应用,

2、 手动在设备上卸载原应用。

3、 将重新打包的应用安装到设备上调试

官网CloudDB文档中,关于对象类型的操作:

https://developer.huawei.com/...

CloudDB Demo:

https://github.com/AppGallery...

云数据库使用指导:

https://developer.huawei.com/...

原文链接:https://developer.huawei.com/...
原作者:Mayism


华为开发者论坛
352 声望56 粉丝

华为开发者论坛是一个为开发者提供信息传播、开发交流、技术分享的交流空间。开发者可以在此获取技术干货、华为源码开放、HMS最新活动等信息,欢迎大家来交流分享!