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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM