2015-06-30 28 views
15

之后,我们升级谷歌Play服务:播放服务后,谷歌分析问题,升级到7.5

compile 'com.google.android.gms:play-services-base:7.5.0' 
compile 'com.google.android.gms:play-services-analytics:7.5.0' 

注意docs说,我们必须使用游戏服务 - 分析:7.3.0,但是 因为我们是使用play服务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(); 

不过,当然这是不太理想,如何将我们让谷歌Analytics(分析)根据配置处理存储/发送并不会得到错误?

UPD:可能值得一提的是,我们正在从播放服务6.5升级。

UPD2:我们再次代理网络,现在看起来GA在一段时间后发送/批量请求。这些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 (?,?,?,?,?,?)] 
+0

如果它在升级接缝之前起作用,那么升级后它不起作用。我无法帮助Android,但我通过电子邮件向Google Analytics SDK团队发送了错误消息。 – DaImTo

+0

@DaIm对于那些SQLite错误在设备重新启动后似乎消失。之后一切都按预期工作。话虽如此,但我们仍然犹豫要发布7.5播放服务,因为我们不能期望用户经常重新启动他们的设备。 –

+0

你有没有找到它的解决方案? –

回答

0

SQLiteLog是您写的一个类还是Google Analytics提供的类?如果你使用的是DBHelper,你可以试试getWritableDatabase()。

您是否有任何可能正在使用旧数据库的长时间运行的服务,或者是否有一些锁定?

您也可以尝试在应用程序上碰撞您的内部版本号,并查看SQL迁移。