Sqlite 表raw\u contacts没有名为raw\u contact\u id的列
我正在android应用程序中插入一个新联系人,如下所示: 我正在添加我的Java类。我得到的错误是插入数据时出错 我不明白我错过了什么,这就是为什么我要面对这个错误 这是我的Java类 私有静态void setContact(上下文mContext、帐户){ ContentResolver ContentResolver=mContext.getContentResolver() 我得到这个错误:Sqlite 表raw\u contacts没有名为raw\u contact\u id的列,sqlite,android-sqlite,sql-insert,contacts,Sqlite,Android Sqlite,Sql Insert,Contacts,我正在android应用程序中插入一个新联系人,如下所示: 我正在添加我的Java类。我得到的错误是插入数据时出错 我不明白我错过了什么,这就是为什么我要面对这个错误 这是我的Java类 私有静态void setContact(上下文mContext、帐户){ ContentResolver ContentResolver=mContext.getContentResolver() 我得到这个错误: E/SQLiteLog: (1) table raw_contacts has no colu
E/SQLiteLog: (1) table raw_contacts has no column named raw_contact_id
06-20 10:23:54.819 1610-11666/? E/SQLiteDatabase: Error inserting
raw_contact_id=79253 pinned=0 contact_id=null data1=Alex account_id=1 mimetype=vnd.android.cursor.item/name
android.database.sqlite.SQLiteException: table raw_contacts has no column named raw_contact_id (code 1): , while compiling: INSERT INTO raw_contacts(raw_contact_id,pinned,contact_id,data1,account_id,mimetype) VALUES (?,?,?,?,?,?)
#################################################################
Error Code : 1 (SQLITE_ERROR)
Caused By : SQL(query) error or missing database.
(table raw_contacts has no column named raw_contact_id (code 1): , while compiling: INSERT INTO raw_contacts(raw_contact_id,pinned,contact_id,data1,account_id,mimetype) VALUES (?,?,?,?,?,?))
#################################################################
at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:1058)
at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:623)
at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:59)
at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1607)
at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1479)
at com.android.providers.contacts.ContactsProvider2.insertRawContact(ContactsProvider2.java:4975)
at com.android.providers.contacts.ContactsProvider2.insertInTransaction(ContactsProvider2.java:4174)
at com.android.providers.contacts.AbstractContactsProvider.insert(AbstractContactsProvider.java:139)
at com.android.providers.contacts.ContactsProvider2.insert(ContactsProvider2.java:3441)
at android.content.ContentProviderOperation.apply(ContentProviderOperation.java:307)
at com.android.providers.contacts.AbstractContactsProvider.applyBatch(AbstractContactsProvider.java:240)
at com.android.providers.contacts.ContactsProvider2.applyBatch(ContactsProvider2.java:3721)
at android.content.ContentProvider$Transport.applyBatch(ContentProvider.java:328)
at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:192)
at android.os.Binder.execTransact(Binder.java:453)
06-20 10:23:54.829 1610-11666/? E/DatabaseUtils: Writing exception to parcel
android.content.OperationApplicationException: insert failed
at android.content.ContentProviderOperation.apply(ContentProviderOperation.java:309)
at com.android.providers.contacts.AbstractContactsProvider.applyBatch(AbstractContactsProvider.java:240)
at com.android.providers.contacts.ContactsProvider2.applyBatch(ContactsProvider2.java:3721)
at
android.content.ContentProvider$Transport.applyBatch(ContentProvider.java:328)
at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:192)
at android.os.Binder.execTransact(Binder.java:453)
E/SQLiteLog:(1)表raw\u contacts没有名为raw\u contact\u id的列
06-20 10:23:54.819 1610-11666/?E/SQLITE数据库:插入错误
原始联系人id=79253 pinted=0联系人id=null数据1=Alex帐户id=1 mimetype=vnd.android.cursor.item/name
android.database.sqlite.SQLiteException:表raw_contacts没有名为raw_contact_id(代码1)的列,编译时:插入到raw_contacts(raw_contact_id,pinted,contact_id,data1,account_id,mimetype)值(?,,,,,,?)
#################################################################
错误代码:1(SQLITE_错误)
原因:SQL(查询)错误或缺少数据库。
(表raw_contacts没有名为raw_contact_id(代码1)的列,编译时:插入到raw_contacts(raw_contact_id,pinted,contact_id,data1,account_id,mimetype)值(?,,,,,,?,?)
#################################################################
位于android.database.sqlite.SQLiteConnection.nativePrepareStatement(本机方法)
位于android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:1058)
位于android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:623)
位于android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
位于android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:59)
位于android.database.sqlite.SQLiteStatement.(SQLiteStatement.java:31)
位于android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1607)
位于android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1479)
在com.android.providers.contacts.ContactsProvider2.insertRawContact上(ContactsProvider2.java:4975)
在com.android.providers.contacts.ContactsProvider2.insertInTransaction(ContactsProvider2.java:4174)上
位于com.android.providers.contacts.AbstractContactsProvider.insert(AbstractContactsProvider.java:139)
在com.android.providers.contacts.ContactsProvider2.insert上(ContactsProvider2.java:3441)
在android.content.ContentProviderOperation.apply上(ContentProviderOperation.java:307)
在com.android.providers.contacts.AbstractContactsProvider.applyBatch上(AbstractContactsProvider.java:240)
在com.android.providers.contacts.ContactsProvider2.applyBatch上(ContactsProvider2.java:3721)
位于android.content.ContentProvider$Transport.applyBatch(ContentProvider.java:328)
位于android.content.ContentProviderNative.onTransact(ContentProviderNative.java:192)
位于android.os.Binder.execTransact(Binder.java:453)
06-20 10:23:54.829 1610-11666/?E/DatabaseUtils:向包裹写入异常
android.content.OperationApplicationException:插入失败
在android.content.ContentProviderOperation.apply(ContentProviderOperation.java:309)中
在com.android.providers.contacts.AbstractContactsProvider.applyBatch上(AbstractContactsProvider.java:240)
在com.android.providers.contacts.ContactsProvider2.applyBatch上(ContactsProvider2.java:3721)
在
ContentProvider$Transport.applyBatch(ContentProvider.java:328)
位于android.content.ContentProviderNative.onTransact(ContentProviderNative.java:192)
位于android.os.Binder.execTransact(Binder.java:453)
当内容与其他条目匹配时,会自动创建原始联系人数据
一旦插入原始联系人或其组成数据发生更改,提供商将检查原始联系人是否与其他现有原始联系人匹配,如果匹配,则将其与这些原始联系人进行聚合。聚合通过更改ContactsContract.RawContactsColumns.contact\u ID字段反映在RawContacts表中,该字段是引用与聚合触点的连接
当内容与其他条目匹配时,会自动创建原始联系人数据 一旦插入原始联系人或其组成数据发生更改,提供商将检查原始联系人是否与其他现有原始联系人匹配,如果匹配,则将其与这些原始联系人进行聚合。聚合通过更改ContactsContract.RawContactsColumns.contact\u ID字段反映在RawContacts表中,该字段是引用与聚合触点的连接
我终于找到了解决方案。问题是我使用了
联系人contract.RawContacts.CONTENT\u URI
而不是联系人contract.Data.CONTENT\u URI
中的手机和显示名称字段中的valueBackReference
。我终于找到了解决方案。问题是我使用了合作ntactsContract.raw contacts.CONTENT\u URI
而不是contacts.Data.CONTENT\u URI
的valueBackReference
和Display\u Name
字段中的?
E/SQLiteLog: (1) table raw_contacts has no column named raw_contact_id
06-20 10:23:54.819 1610-11666/? E/SQLiteDatabase: Error inserting
raw_contact_id=79253 pinned=0 contact_id=null data1=Alex account_id=1 mimetype=vnd.android.cursor.item/name
android.database.sqlite.SQLiteException: table raw_contacts has no column named raw_contact_id (code 1): , while compiling: INSERT INTO raw_contacts(raw_contact_id,pinned,contact_id,data1,account_id,mimetype) VALUES (?,?,?,?,?,?)
#################################################################
Error Code : 1 (SQLITE_ERROR)
Caused By : SQL(query) error or missing database.
(table raw_contacts has no column named raw_contact_id (code 1): , while compiling: INSERT INTO raw_contacts(raw_contact_id,pinned,contact_id,data1,account_id,mimetype) VALUES (?,?,?,?,?,?))
#################################################################
at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:1058)
at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:623)
at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:59)
at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1607)
at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1479)
at com.android.providers.contacts.ContactsProvider2.insertRawContact(ContactsProvider2.java:4975)
at com.android.providers.contacts.ContactsProvider2.insertInTransaction(ContactsProvider2.java:4174)
at com.android.providers.contacts.AbstractContactsProvider.insert(AbstractContactsProvider.java:139)
at com.android.providers.contacts.ContactsProvider2.insert(ContactsProvider2.java:3441)
at android.content.ContentProviderOperation.apply(ContentProviderOperation.java:307)
at com.android.providers.contacts.AbstractContactsProvider.applyBatch(AbstractContactsProvider.java:240)
at com.android.providers.contacts.ContactsProvider2.applyBatch(ContactsProvider2.java:3721)
at android.content.ContentProvider$Transport.applyBatch(ContentProvider.java:328)
at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:192)
at android.os.Binder.execTransact(Binder.java:453)
06-20 10:23:54.829 1610-11666/? E/DatabaseUtils: Writing exception to parcel
android.content.OperationApplicationException: insert failed
at android.content.ContentProviderOperation.apply(ContentProviderOperation.java:309)
at com.android.providers.contacts.AbstractContactsProvider.applyBatch(AbstractContactsProvider.java:240)
at com.android.providers.contacts.ContactsProvider2.applyBatch(ContactsProvider2.java:3721)
at
android.content.ContentProvider$Transport.applyBatch(ContentProvider.java:328)
at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:192)
at android.os.Binder.execTransact(Binder.java:453)