【发布时间】:2015-09-16 18:19:26
【问题描述】:
在我们将 Google Play 服务升级到:
compile 'com.google.android.gms:play-services-base:7.5.0'
compile 'com.google.android.gms:play-services-analytics:7.5.0'
注意docs 说我们必须使用 play-services-analytics:7.3.0, 但是,由于我们使用的是 play services 7.5,因此我们使用了开头所述的配置。
应用程序编译正常,但我们注意到我们的 Google Analytics(分析)不再发送到我们的服务器。而且,每当我们调用 Tracker.send() 时,每个事件的错误日志中都会出现以下几行:
06-30 10:51:43.188 13623-13752/com.fairfax.domain E/SQLiteLog﹕ (1032) statement aborts at 31: [INSERT OR REPLACE INTO properties(cid,app_uid,hits_count,adid,params,tid) VALUES (?,?,?,?,?,?)]
06-30 10:51:43.198 13623-13752/com.fairfax.domain E/GAv4﹕ Error storing a property: android.database.sqlite.SQLiteReadOnlyDatabaseException: attempt to write a readonly database (code 1032)
06-30 10:51:44.348 13623-13752/com.fairfax.domain E/SQLiteLog﹕ (1032) statement aborts at 31: [INSERT OR REPLACE INTO properties(cid,app_uid,hits_count,adid,params,tid) VALUES (?,?,?,?,?,?)]
06-30 10:51:44.358 13623-13752/com.fairfax.domain E/GAv4﹕ Error storing a property: android.database.sqlite.SQLiteReadOnlyDatabaseException: attempt to write a readonly database (code 1032)
06-3
我们代理了流量,发现它确实似乎没有发送 GA 事件。
作为目前的解决方法,我们对手动调度进行了更改:
analytics.setLocalDispatchPeriod(0);
并手动调用:
GoogleAnalytics.getInstance(appContext).dispatchLocalHits();
但这当然不太理想,我们如何让 Google Analytics 根据配置处理存储/发送而不出现错误?
UPD:值得一提的是,我们正在从播放服务 6.5 升级。
UPD2:我们再次代理网络,现在看来 GA 确实在一段时间后发送 /batch 请求。这些 SQLite 错误仍然存在:
8273-8329/com.fairfax.domain E/SQLiteLog﹕ (1032) statement aborts at 29: [INSERT OR REPLACE INTO properties(cid,app_uid,hits_count,adid,params,tid) VALUES (?,?,?,?,?,?)]
【问题讨论】:
-
如果在你升级接缝之前它可以工作,奇怪的是它在升级后就不能工作。我无法为 Android 提供帮助,但我给 Analytics SDK 团队发了电子邮件,只是为了防止他们的错误。
-
@DaImTo 那些 SQLite 错误似乎在设备重启后消失了。之后一切都按预期工作。话虽如此,我们仍然对发布带有 7.5 播放服务的版本犹豫不决,因为我们不能指望用户如此频繁地重启他们的设备。
-
你找到解决办法了吗?
-
@SagarTrehan 我们升级到了最近发布的 8.3.0。我不记得从那以后看到过错误。
-
感谢康斯坦丁。我会尝试更新播放服务版本
标签: android google-analytics google-play-services