gpt4 book ai didi

android - SQLiteException 无法插入行

转载 作者:搜寻专家 更新时间:2023-10-30 21:53:48 27 4
gpt4 key购买 nike

插入sqlite3数据库失败的可能原因是什么?来自 SQLiteException 的跟踪并不是特别有用。

是否有任何方法可以更好地了解导致异常的原因?

创建表格的位置(抱歉任何不稳定的间距):

http://pastebin.com/QqUgdDz0

在 SAX 解析器的 endElement 中解析值的位置:

http://pastebin.com/iN1M8QMe

调用插入的地方:

http://pastebin.com/xUqrmexw

在提供者中插入大小写:

case SUBMATERIAL_SINGLE_URI:
rowId = db.insert(jobName+JobMetaData.SubmaterialTableMetaData.TABLE_NAME_SUFFIX,
JobMetaData.SubmaterialTableMetaData.TYPE, validValues);
if (rowId > 0)
{
Uri submaterialUri = ContentUris.withAppendedId(JobMetaData.SubmaterialTableMetaData.CONTENT_URI,
rowId);
getContext().getContentResolver().notifyChange(submaterialUri, null);
return submaterialUri;
}
break;

堆栈跟踪:

System.err( 8048): android.database.SQLException: Failed to insert row into content://dsndata.sds2mobile.jobprovider/C_1/submaterial/NULL
System.err( 8048): at dsndata.sds2mobile.JobProvider.insert(JobProvider.java:341)
System.err( 8048): at android.content.ContentProvider$Transport.insert(ContentProvider.java:180)
System.err( 8048): at android.content.ContentResolver.insert(ContentResolver.java:587)
System.err( 8048): at dsndata.sds2mobile.parser.MobileParser.endElement(MobileParser.java:227)
System.err( 8048): at org.xml.sax.helpers.XMLReaderAdapter.endElement(XMLReaderAdapter.java:355)
System.err( 8048): at org.apache.harmony.xml.ExpatParser.endElement(ExpatParser.java:160)
System.err( 8048): at org.apache.harmony.xml.ExpatParser.append(Native Method)
System.err( 8048): at org.apache.harmony.xml.ExpatParser.parseFragment(ExpatParser.java:505)
System.err( 8048): at org.apache.harmony.xml.ExpatParser.parseDocument(ExpatParser.java:492)
System.err( 8048): at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:308)
System.err( 8048): at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:264)
System.err( 8048): at org.xml.sax.helpers.XMLReaderAdapter.parse(XMLReaderAdapter.java:225)
System.err( 8048): at javax.xml.parsers.SAXParser.parse(SAXParser.java:361)
System.err( 8048): at dsndata.sds2mobile.parser.MobileParser.parse(MobileParser.java:120)
System.err( 8048): at dsndata.sds2mobile.UI.onClick(UI.java:90)
System.err( 8048): at android.view.View.performClick(View.java:2408)
System.err( 8048): at android.view.View$PerformClick.run(View.java:8817)
System.err( 8048): at android.os.Handler.handleCallback(Handler.java:587)
System.err( 8048): at android.os.Handler.dispatchMessage(Handler.java:92)
System.err( 8048): at android.os.Looper.loop(Looper.java:144)
System.err( 8048): at android.app.ActivityThread.main(ActivityThread.java:4937)
System.err( 8048): at java.lang.reflect.Method.invokeNative(Native Method)
System.err( 8048): at java.lang.reflect.Method.invoke(Method.java:521)
System.err( 8048): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
System.err( 8048): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
System.err( 8048): at dalvik.system.NativeStart.main(Native Method)

需要注意的是,这里URI中的NULL是一个字符串值,根据URI匹配方案是可以接受的。这是一次测试运行,尚未使用实际值。

更新:事实证明,我的合作伙伴(负责生成 XML)遗漏了一些项目。想通了。

感谢您的帮助!我很感激时间。

最佳答案

一些:

  1. SQLite 数据库使用的存储空间不足
  2. 无权使用 sdcard 和使用 sdcard 支持的数据库
  3. 请求在数据库的只读副本上插入一行

可能还有更多。

关于android - SQLiteException 无法插入行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4763825/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com