CloudDB对象类型创建失败,问题解决三板斧

在使用华为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 然后输入一个包名。

导出完成后,将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,这里一般导出无需修改。

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

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

正确的操作步骤:

1、 重新打包应用,

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

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

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

https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-clouddb-agcconsole-objecttypes

CloudDB Demo:

https://github.com/AppGalleryConnect/agc-android-demos/tree/master/acg-clouddb-demo-java

云数据库使用指导:

https://developer.huawei.com/consumer/cn/forum/topic/0202441049629310404?fid=0101271690375130218

原文链接:https://developer.huawei.com/consumer/cn/forum/topic/0201441041702500387?fid=0101271690375130218
原作者:Mayism

原文地址:https://www.cnblogs.com/developer-huawei/p/14662267.html