给Xamarin Android应用加Firebase Analytics遇SQLite约束错误求解决
可行的解决方法:
清理重建项目
右键解决方案选择「清理解决方案」,再执行「重建解决方案」,同时手动删除项目目录下的bin和obj文件夹,清除旧编译缓存。降级Firebase Analytics NuGet包版本
当前使用的121.3.0.2版本可能存在兼容性问题,尝试降级到更早的稳定版本(如121.2.0.1或120.1.0.1),安装后重新测试应用启动情况。校验Firebase配置文件
确认google-services.json已正确放置在Android项目根目录,且文件内容与Firebase控制台生成的完全一致,无配置项缺失或错误。禁用重复的NetworkScheduler服务
该错误源于NetworkScheduler的数据库唯一约束冲突,可在AndroidManifest.xml中添加配置移除相关重复服务:
xmlns:tools="http://schemas.android.com/tools" <!-- 需添加到manifest根节点 --> <service android:name="com.google.android.gms.gcm.GcmNetworkManagerService" android:exported="false" tools:node="remove" /> <service android:name="com.google.android.gms.gcm.TaskService" android:exported="false" tools:node="remove" />
- 统一Firebase相关包版本
如果项目中还集成了其他Firebase组件(如Firebase Messaging),确保所有Firebase NuGet包的版本保持一致,版本不匹配易引发底层冲突。
错误日志详情:
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)
11-02 20:36:58.139 W/NetworkScheduler(11894): at android.database.sqlite.SQLiteConnection.nativeExecuteForLastInsertedRowId(Native Method)
内容的提问来源于stack exchange,提问作者Dario M.

