我在我的应用程序中使用Objectbox作为ORM,并且由于UID不匹配而获得dbexception,当我在我的一个实体中添加了一些额外的属性时。当我浏览文档时,如果我们在您的实体中添加或删除属性,则对象框将负责更改。但在我的情况下并没有发生这种情况。请查看我的日志存储,实体和default.json一次,让我知道解决此问题的可能解决方案。
ObjectBox版本:v1.2.0
日志
Caused by: io.objectbox.exception.DbException: Incoming entity ID 8:7509306813647547019 does not match existing UID 8172185837942255744
at io.objectbox.BoxStore.nativeCreate(Native Method)
at io.objectbox.BoxStore.<init>(BoxStore.java:187)
at io.objectbox.BoxStoreBuilder.build(BoxStoreBuilder.java:259)
at com.letsdogether.dogether.dagger.module.ObjectModule.<init>(ObjectModule.java:34)
at com.letsdogether.dogether.newDogetherHome.DogetherApplication.loadObjectsComponent(DogetherApplication.java:104)
at com.letsdogether.dogether.newDogetherHome.DogetherApplication.onCreate(DogetherApplication.java:79)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1018)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4969)
at android.app.ActivityThread.-wrap1(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1559)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:207)
at android.app.ActivityThread.main(ActivityThread.java:5750)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)
实体
以前我的实体看起来像这样:
@Entity
public class BookingItem {
private long id;
@Id(assignable = true)
private long priority;
private String date;
private String formattedAddress;
private String orderId;
private String type;
private String title;
private int seatCount;
private String pricePerPerson;
private String time;
private String day;
private String redirectUrl;
private String status;
private long experienceId;
private String shareableUrl;
private ToOne<Image> image;
private ToOne<FeedElement> feedElementToOne;
}
我的default.json看起来像这样:
{
"_note1": "KEEP THIS FILE! Check it into a version control system (VCS) like git.",
"_note2": "ObjectBox manages crucial IDs for your object model. See docs for details.",
"_note3": "If you have VCS merge conflicts, you must resolve them according to ObjectBox docs.",
"entities": [
{
"id": "1:4340630284304338974",
"lastPropertyId": "8:4962045346664663063",
"name": "BaseExperience",
"properties": [
{
"id": "1:647607068638902600",
"name": "id"
},
{
"id": "2:2702040841419862055",
"name": "actualId"
},
{
"id": "3:3033280429430892352",
"name": "avgRating"
},
{
"id": "4:7218439493883955972",
"name": "customerReviewsCount"
},
{
"id": "5:80984715122814807",
"name": "pricePerPerson"
},
{
"id": "6:3883498391107289246",
"name": "title"
},
{
"id": "7:8998466498535731699",
"indexId": "1:1765637542740785127",
"name": "videoId"
},
{
"id": "8:4962045346664663063",
"indexId": "2:2040540235098101863",
"name": "feedToOneId"
}
],
"relations": []
},
{
"id": "2:7267925106594307597",
"lastPropertyId": "17:4933883640820962465",
"name": "BookingItem",
"properties": [
{
"id": "1:2843152350771579539",
"name": "id"
},
{
"id": "2:3864807135625693365",
"name": "priority"
},
{
"id": "3:2811475968058126998",
"name": "date"
},
{
"id": "4:5994267266359962076",
"name": "formattedAddress"
},
{
"id": "5:8101006061974386478",
"name": "orderId"
},
{
"id": "6:5927620191588993112",
"name": "type"
},
{
"id": "7:6885331133485554648",
"name": "title"
},
{
"id": "8:1499199287986398172",
"name": "seatCount"
},
{
"id": "9:2504021269483806060",
"name": "pricePerPerson"
},
{
"id": "10:7281235595111103399",
"name": "time"
},
{
"id": "11:6617722497399396474",
"name": "day"
},
{
"id": "12:2473985422221126897",
"name": "redirectUrl"
},
{
"id": "13:2904830306792476987",
"name": "status"
},
{
"id": "14:2181195403266779204",
"name": "experienceId"
},
{
"id": "15:3018070061889416768",
"name": "shareableUrl"
},
{
"id": "16:6444561946554419063",
"indexId": "3:1705820361334358507",
"name": "imageId"
},
{
"id": "17:4933883640820962465",
"indexId": "4:3744949801364672550",
"name": "feedElementToOneId"
}
],
"relations": []
},
{
"id": "3:160108942376228999",
"lastPropertyId": "6:8550232341754154098",
"name": "Feed",
"properties": [
{
"id": "1:1692860121377933562",
"name": "id"
},
{
"id": "2:8854384643059958161",
"name": "type"
},
{
"id": "3:7664556112391884481",
"name": "title"
},
{
"id": "4:5817245497381540954",
"name": "seeAll"
},
{
"id": "5:2317329177962315800",
"name": "feedType"
},
{
"id": "6:8550232341754154098",
"indexId": "5:680938987943440350",
"name": "feedElementToOneId"
}
],
"relations": []
},
{
"id": "4:7537217652864317597",
"lastPropertyId": "3:6112954104554042430",
"name": "FeedElement",
"properties": [
{
"id": "1:4926947771749822767",
"name": "id"
},
{
"id": "2:8131453946945993591",
"name": "nextUrl"
},
{
"id": "3:6112954104554042430",
"name": "feedElementType"
}
],
"relations": []
},
{
"id": "5:2348793681892920669",
"lastPropertyId": "8:7488175383318173729",
"name": "Image",
"properties": [
{
"id": "1:638964174063060815",
"name": "actualId"
},
{
"id": "2:4967935003726444020",
"name": "color"
},
{
"id": "3:1353497332618194831",
"name": "id"
},
{
"id": "4:2887915135519113362",
"name": "url"
},
{
"id": "5:8827023004110736151",
"name": "url1080"
},
{
"id": "6:1795038216616196366",
"name": "url160"
},
{
"id": "7:5076768945024929823",
"name": "url360"
},
{
"id": "8:7488175383318173729",
"indexId": "6:4968485658423571275",
"name": "baseExperienceId"
}
],
"relations": []
},
{
"id": "6:2806463549017646468",
"lastPropertyId": "7:1664725566577873631",
"name": "Location",
"properties": [
{
"id": "1:151476474888340297",
"name": "id"
},
{
"id": "2:6138069029925290631",
"name": "city"
},
{
"id": "3:8096792582877437443",
"name": "formattedAddress"
},
{
"id": "4:8477355478574191642",
"name": "mapImgUrl"
},
{
"id": "5:5250680748074469313",
"name": "redirectUrl"
},
{
"id": "6:5264044175718414745",
"name": "lat"
},
{
"id": "7:1664725566577873631",
"name": "lng"
}
],
"relations": []
},
{
"id": "7:1386266048121100599",
"lastPropertyId": "19:3626459003273476368",
"name": "User",
"properties": [
{
"id": "1:7194535953200583315",
"name": "id"
},
{
"id": "2:5880155672016170214",
"name": "age"
},
{
"id": "3:7058496909689094561",
"name": "bio"
},
{
"id": "4:7069552521054985458",
"name": "dob"
},
{
"id": "5:2017478464009051869",
"name": "education"
},
{
"id": "6:7411668424835907052",
"name": "email"
},
{
"id": "7:3598420919065748818",
"name": "fullName"
},
{
"id": "8:55256390599336845",
"name": "gender"
},
{
"id": "10:4287083418016851024",
"name": "numberVerified"
},
{
"id": "11:7486368292287445046",
"name": "phoneNumber"
},
{
"id": "12:332314590071314536",
"name": "shareableUrl"
},
{
"id": "13:3581159011829058253",
"name": "showTutorial"
},
{
"id": "14:45244862441869123",
"name": "username"
},
{
"id": "15:80719230754500568",
"name": "verified"
},
{
"id": "16:8347557177943880481",
"name": "work"
},
{
"id": "17:8060185784410064574",
"indexId": "7:3086777593508744479",
"name": "locationRelationId"
},
{
"id": "18:7093446540087310685",
"indexId": "8:4392926741093129871",
"name": "profilePictureRelationId"
},
{
"id": "19:3626459003273476368",
"name": "host"
}
],
"relations": []
},
{
"id": "8:8172185837942255744",
"lastPropertyId": "4:2905712751785391104",
"name": "Video",
"properties": [
{
"id": "1:4230636119749821279",
"name": "id"
},
{
"id": "2:7059360054054181511",
"name": "nightMode"
},
{
"id": "3:7865268851517989166",
"name": "thumbnailUrl"
},
{
"id": "4:2905712751785391104",
"name": "url"
}
],
"relations": []
}
],
"lastEntityId": "8:8172185837942255744",
"lastIndexId": "8:4392926741093129871",
"lastRelationId": "0:0",
"lastSequenceId": "0:0",
"modelVersion": 4,
"modelVersionParserMinimum": 4,
"retiredEntityUids": [],
"retiredIndexUids": [],
"retiredPropertyUids": [
5678282376830830494
],
"retiredRelationUids": [],
"version": 1
}
现在在我的实体中添加了两个新属性后:
@Entity
public class BookingItem {
//region Variables
private long id;
@Id(assignable = true)
private long priority;
private String date;
private String formattedAddress;
private String orderId;
private String type;
private String title;
private int seatCount;
private String pricePerPerson;
private String totalTax; // 1st new propery
private String totalAmount; // 2nd new property
private String time;
private String day;
private String redirectUrl;
private String status;
private long experienceId;
private String shareableUrl;
private ToOne<Image> image;
private ToOne<FeedElement> feedElementToOne;
//endregion
}
和我的default.json文件:
{
"_note1": "KEEP THIS FILE! Check it into a version control system (VCS) like git.",
"_note2": "ObjectBox manages crucial IDs for your object model. See docs for details.",
"_note3": "If you have VCS merge conflicts, you must resolve them according to ObjectBox docs.",
"entities": [
{
"id": "1:797065206246794980",
"lastPropertyId": "6:5238604438383493820",
"name": "Feed",
"properties": [
{
"id": "1:4778143127430396941",
"name": "id"
},
{
"id": "2:2758756424257447876",
"name": "type"
},
{
"id": "3:8593664445454711775",
"name": "title"
},
{
"id": "4:3260484052954017714",
"name": "seeAll"
},
{
"id": "5:5439051893044673734",
"name": "feedType"
},
{
"id": "6:5238604438383493820",
"indexId": "1:9094671316112178979",
"name": "feedElementToOneId"
}
],
"relations": []
},
{
"id": "2:6365001579184770311",
"lastPropertyId": "8:4101477603790778141",
"name": "BaseExperience",
"properties": [
{
"id": "1:22769140630409817",
"name": "id"
},
{
"id": "2:9018492547283474382",
"name": "actualId"
},
{
"id": "3:7038610176041110296",
"name": "avgRating"
},
{
"id": "4:6685630808795149304",
"name": "customerReviewsCount"
},
{
"id": "5:700371560430014226",
"name": "pricePerPerson"
},
{
"id": "6:5016151397612468696",
"name": "title"
},
{
"id": "7:1936717642548225179",
"indexId": "2:1430584179264421000",
"name": "videoId"
},
{
"id": "8:4101477603790778141",
"indexId": "3:2605016395080192788",
"name": "feedToOneId"
}
],
"relations": []
},
{
"id": "3:6907123400855664498",
"lastPropertyId": "7:2458659011456972963",
"name": "Location",
"properties": [
{
"id": "1:7686305118064424277",
"name": "id"
},
{
"id": "2:2382662573706119095",
"name": "city"
},
{
"id": "3:6622007474920998885",
"name": "formattedAddress"
},
{
"id": "4:4372387463973357662",
"name": "mapImgUrl"
},
{
"id": "5:4242635850865049170",
"name": "redirectUrl"
},
{
"id": "6:6362649356171979743",
"name": "lat"
},
{
"id": "7:2458659011456972963",
"name": "lng"
}
],
"relations": []
},
{
"id": "4:1653889744595737127",
"lastPropertyId": "4:1222058476100793989",
"name": "Video",
"properties": [
{
"id": "1:8884142329290866772",
"name": "id"
},
{
"id": "2:9063641434858436120",
"name": "nightMode"
},
{
"id": "3:6750530027777030938",
"name": "thumbnailUrl"
},
{
"id": "4:1222058476100793989",
"name": "url"
}
],
"relations": []
},
{
"id": "5:2328616238996484251",
"lastPropertyId": "18:8914368039716260545",
"name": "User",
"properties": [
{
"id": "1:8699946482619760537",
"name": "id"
},
{
"id": "2:4839102804066560980",
"name": "age"
},
{
"id": "3:4125992685805831147",
"name": "bio"
},
{
"id": "4:1279509102068824378",
"name": "dob"
},
{
"id": "5:2555427309043212840",
"name": "education"
},
{
"id": "6:5872521230199756193",
"name": "email"
},
{
"id": "7:3289121993356321",
"name": "fullName"
},
{
"id": "8:568408267657413444",
"name": "gender"
},
{
"id": "9:5476542265369423309",
"name": "host"
},
{
"id": "10:7787973054527294793",
"name": "numberVerified"
},
{
"id": "11:7196291790521558535",
"name": "phoneNumber"
},
{
"id": "12:1859664059288662356",
"name": "shareableUrl"
},
{
"id": "13:4056506903853763516",
"name": "showTutorial"
},
{
"id": "14:5747800400884843324",
"name": "username"
},
{
"id": "15:3715522420100243828",
"name": "verified"
},
{
"id": "16:3996139181248738872",
"name": "work"
},
{
"id": "17:3912614163504861034",
"indexId": "4:724013235730952653",
"name": "locationRelationId"
},
{
"id": "18:8914368039716260545",
"indexId": "5:9128231055610190580",
"name": "profilePictureRelationId"
}
],
"relations": []
},
{
"id": "6:162879391314678826",
"lastPropertyId": "19:5998558359424914894",
"name": "BookingItem",
"properties": [
{
"id": "1:7685664473128076565",
"name": "id"
},
{
"id": "2:4691963051617887607",
"name": "priority"
},
{
"id": "3:4751608989851978419",
"name": "date"
},
{
"id": "4:4298668252649681543",
"name": "formattedAddress"
},
{
"id": "5:3557896982175720249",
"name": "orderId"
},
{
"id": "6:5444396912371992185",
"name": "type"
},
{
"id": "7:6350566628717896888",
"name": "title"
},
{
"id": "8:5815948248926709539",
"name": "seatCount"
},
{
"id": "9:1347517584208111506",
"name": "pricePerPerson"
},
{
"id": "10:161182016726729049",
"name": "totalTax"
},
{
"id": "11:2603677420345643342",
"name": "totalAmount"
},
{
"id": "12:6964519603978301018",
"name": "time"
},
{
"id": "13:6563743671015329186",
"name": "day"
},
{
"id": "14:5252213579952934956",
"name": "redirectUrl"
},
{
"id": "15:213202584538548112",
"name": "status"
},
{
"id": "16:2664627056996276806",
"name": "experienceId"
},
{
"id": "17:5051545379861430992",
"name": "shareableUrl"
},
{
"id": "18:4513563003576451503",
"indexId": "6:4794120774209056940",
"name": "imageId"
},
{
"id": "19:5998558359424914894",
"indexId": "7:2963448740658161805",
"name": "feedElementToOneId"
}
],
"relations": []
},
{
"id": "7:6072605387056962258",
"lastPropertyId": "8:620926858576597520",
"name": "Image",
"properties": [
{
"id": "1:4722495423798219248",
"name": "actualId"
},
{
"id": "2:5785809790036589091",
"name": "color"
},
{
"id": "3:898405045397421733",
"name": "id"
},
{
"id": "4:5442888368829266995",
"name": "url"
},
{
"id": "5:3501485434468197765",
"name": "url1080"
},
{
"id": "6:1316954607651171513",
"name": "url160"
},
{
"id": "7:2942445530687114413",
"name": "url360"
},
{
"id": "8:620926858576597520",
"indexId": "8:7864085141767381960",
"name": "baseExperienceId"
}
],
"relations": []
},
{
"id": "8:7509306813647547019",
"lastPropertyId": "3:6958687385472305063",
"name": "FeedElement",
"properties": [
{
"id": "1:3560464698535580090",
"name": "id"
},
{
"id": "2:7436822921002379968",
"name": "nextUrl"
},
{
"id": "3:6958687385472305063",
"name": "feedElementType"
}
],
"relations": []
}
],
"lastEntityId": "8:7509306813647547019",
"lastIndexId": "8:7864085141767381960",
"lastRelationId": "0:0",
"lastSequenceId": "0:0",
"modelVersion": 4,
"modelVersionParserMinimum": 4,
"retiredEntityUids": [],
"retiredIndexUids": [],
"retiredPropertyUids": [],
"retiredRelationUids": [],
"version": 1
}
答案 0 :(得分:1)
是的。您可能在创建一次后更改了对象结构。
解决问题的最简单方法:
就像你说的,如果可能你需要删除default.json
文件(在你构建项目时自动构建)。在下一个版本中,它将再次创建。
我建议您阅读objectbox文档中的Resolving Meta Model Conflicts。
答案 1 :(得分:1)
如果您删除了app / objectbox-models / default.json并从Android设备上卸载了该应用程序,但问题仍然存在,请检查清单文件中的android:allowBackup="true"
并将其更改为false。然后再次重复这些步骤。
这花了我一个小时的时间,希望对您有所帮助。
答案 2 :(得分:0)
我的问题已经解决,问题实际上是我错误地删除了我的旧default.json文件,这是我没有必要的,最终导致重新生成所有实体的ID并导致我不匹配的UID异常。感谢Markus Junginger。
答案 3 :(得分:0)
以下是GitHub issue中所述的解决方案:
项目中两个版本的ID完全关闭:https://www.diffchecker.com/PF3UlSM7
请恢复旧版&#34; default.json&#34;文件和重建。此文件在更新时应该只有很小的差异。