Android 每次活动开始后显示SQLiteConstraintException错误

Android 每次活动开始后显示SQLiteConstraintException错误,android,android-sqlite,Android,Android Sqlite,我一直在logcat中发现这个错误。它总是在每次活动改变后显示。有时,该应用程序会消失,并在一秒钟内再次显示。logcat中没有任何致命错误,我所看到的是: 2020-05-20 11:53:26.422 2940-8484/? E/SQLiteDatabase: Error inserting flex_time=3324000 job_id=-1 period=6650000 source=16 requires_charging=0 preferred_network_type=1 tar

我一直在logcat中发现这个错误。它总是在每次活动改变后显示。有时,该应用程序会消失,并在一秒钟内再次显示。logcat中没有任何致命错误,我所看到的是:

2020-05-20 11:53:26.422 2940-8484/? E/SQLiteDatabase: Error inserting flex_time=3324000 job_id=-1 period=6650000 source=16 requires_charging=0 preferred_network_type=1 target_class=com.google.android.gms.measurement.PackageMeasurementTaskService user_id=0 target_package=com.google.android.gms tag=Measurement.PackageMeasurementTaskService.UPLOAD_TASK_TAG task_type=0 required_idleness_state=0 service_kind=0 source_version=201516000 persistence_level=1 preferred_charging_state=1 required_network_type=0 runtime=1589968406417 retry_strategy={"maximum_backoff_seconds":{"3600":0},"initial_backoff_seconds":{"30":0},"retry_policy":{"0":0}} last_runtime=0
android.database.sqlite.SQLiteConstraintException: UNIQUE constraint failed: pending_ops.tag, pending_ops.target_class, pending_ops.target_package, pending_ops.user_id (code 2067 SQLITE_CONSTRAINT_UNIQUE)
    at android.database.sqlite.SQLiteConnection.nativeExecuteForLastInsertedRowId(Native Method)
    at android.database.sqlite.SQLiteConnection.executeForLastInsertedRowId(SQLiteConnection.java:879)
    at android.database.sqlite.SQLiteSession.executeForLastInsertedRowId(SQLiteSession.java:790)
    at android.database.sqlite.SQLiteStatement.executeInsert(SQLiteStatement.java:88)
    at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1599)
    at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1468)
    at aplm.a(:com.google.android.gms@201516038@20.15.16 (120406-309763488):76)
    at aplb.a(:com.google.android.gms@201516038@20.15.16 (120406-309763488):173)
    at aplb.a(:com.google.android.gms@201516038@20.15.16 (120406-309763488):21)
    at aplb.a(:com.google.android.gms@201516038@20.15.16 (120406-309763488):167)
    at aphk.run(:com.google.android.gms@201516038@20.15.16 (120406-309763488):8)
    at sob.b(:com.google.android.gms@201516038@20.15.16 (120406-309763488):12)
    at sob.run(:com.google.android.gms@201516038@20.15.16 (120406-309763488):7)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
    at sub.run(:com.google.android.gms@201516038@20.15.16 (120406-309763488):0)
    at java.lang.Thread.run(Thread.java:919)
但是它没有向代码显示任何地方,有什么解决方案吗

编辑:谷歌图书馆:

implementation 'com.google.android.material:material:1.1.0'
implementation 'com.google.firebase:firebase-core:17.1.0'
implementation 'com.google.firebase:firebase-database:19.0.0'
implementation 'com.google.firebase:firebase-analytics:17.0.1'
implementation 'com.google.firebase:firebase-perf:19.0.0'
implementation 'com.google.android.gms:play-services-ads:18.1.1'

我也有同样的问题。通过将firebase消息传递工件添加到模块gradle文件,我的案例得以解决:

implementation 'com.google.firebase:firebase-messaging:20.2.3'
您的案例可能会通过添加缺少的库来修复。

从firebase android sdk的
项目中打开:

因为它需要一个更新来播放服务,所以我暂且不给你一个时间表,告诉你它什么时候会推出。但是,这不需要开发人员对action/SDK进行升级,并且应该在客户设备上自动修复


可能您正在活动中将数据插入数据库。唯一密钥约束失败,因为您正在添加相同的数据。这似乎来自GMS代码。你的项目中谷歌库依赖项的版本是什么?@KrishnaSony问题是我没有将数据插入应用程序中的任何数据库中。我只使用一个预填充的数据库,从中获取数据,但我甚至没有在发生此错误的某些活动中使用它。@laalto添加了我在本例中使用的谷歌库,我使用的是'com.google.firebase:firebase analytics:17.4.2',这会导致相同的错误。如果我从gradle中删除这个依赖项,这个错误就会消失。我想问题的根源在于Firebase。它与谷歌服务有关吗?它在日志中显示SQLiteDatabase。