数据库运行时在未在源代码中出现的列中插入行时发生异常

时间:2015-09-29 08:12:26

标签: android sqlite debugging

在运行我的应用程序时,logcat显示异常:

09-28 16:37:33.364     853-2228/? E/SQLiteDatabase? Error inserting
    android.database.sqlite.SQLiteConstraintException: column context_id is not unique (code 19)
    at android.database.sqlite.SQLiteConnection.nativeExecuteForLastInsertedRowId(Native Method)
    at android.database.sqlite.SQLiteConnection.executeForLastInsertedRowId(SQLiteConnection.java:782)
    at android.database.sqlite.SQLiteSession.executeForLastInsertedRowId(SQLiteSession.java:788)
    at android.database.sqlite.SQLiteStatement.executeInsert(SQLiteStatement.java:86)
    at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1471)
    at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1339)
    at com.google.android.contextmanager.q.al.a(SourceFile:408)
    at com.google.android.contextmanager.q.al.b(SourceFile:383)
    at com.google.android.contextmanager.q.al.a(SourceFile:349)
    at com.google.android.contextmanager.q.al.b(SourceFile:376)
    at com.google.android.contextmanager.g.a.j.a(SourceFile:58)
    at com.google.android.contextmanager.g.a.a.run(SourceFile:52)
    at com.google.android.contextmanager.g.i.handleMessage(SourceFile:215)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:149)
    at android.os.HandlerThread.run(HandlerThread.java:61)

我的问题是,当我在整个项目中进行完整搜索时,context_id列不会出现。异常信息指向android libs中的类,而不是我的代码。

任何线索,如何跟踪此异常?

1 个答案:

答案 0 :(得分:1)

这是在最近的一次更新后开始出现在Android设备上的东西。它很可能与您的应用程序无关。

除非您正在与其他应用/服务进行通信并且需要查看他们正在记录的内容,否则您应该在<ul ng-repeat="item in people"> <li ng-animate="'animate'" ng-repeat="person in item.people | filter: ..."> 中的第一个数字上过滤您的日志,因为这是该进程的ID生成日志消息的进程。找到您知道来自您的应用的消息,并将其用作参考。

如果您正在使用Android Studio,还应该可以从下拉列表中选择您的应用程序,并选择“仅显示所选应用程序”,这将与我上面描述的效果相同。