2015-06-30 7 views
15

Dopo abbiamo aggiornato Google Play Services per:Google Analytics problemi dopo i servizi di gioco l'aggiornamento a 7.5

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

noti che docs dire che dobbiamo usare play-servizi-analisi: 7.3.0, tuttavia, poiché siamo utilizzando i servizi di gioco 7.5, abbiamo utilizzato le configurazioni indicate all'inizio.

L'app viene compilata correttamente, ma abbiamo notato che Google Analytics non invia più al nostro server. E anche ogni volta che facciamo chiamare Tracker.send() le seguenti righe appariranno nel log degli errori per evento:

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 

Abbiamo proxy il traffico e vide che in effetti non sembrava di inviare gli eventi GA.

Come soluzione alternativa per ora abbiamo fatto il cambio di invio manuale:

analytics.setLocalDispatchPeriod(0); 

e chiamando manualmente:

GoogleAnalytics.getInstance(appContext).dispatchLocalHits(); 

Ma naturalmente questo è proprio l'ideale, come potremmo lasciare che Google Analytics Gestire la memorizzazione/l'invio in base alle configurazioni e non ottenere gli errori?

UPD: Probabilmente vale la pena menzionare che stiamo aggiornando dai servizi di gioco 6.5.

UPD2: Abbiamo ricontrollato la rete e ora sembra che GA invii/batch richiesta dopo un po '. Questi errori SQLite sono comunque presenti:

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

Se ha funzionato prima che le cuciture aggiornate siano strane, non funziona dopo l'aggiornamento. Non posso aiutarti con Android, ma ho inviato per e-mail al team di Analytics SDK solo per incassare il loro bug. – DaImTo

+0

@DaImTo quegli errori SQLite sembrano scomparire dopo il riavvio del dispositivo. Dopo tutto, tutto funziona come previsto. Detto questo, siamo ancora riluttanti a pubblicare una build con 7.5 servizi di riproduzione, dal momento che non possiamo aspettarci che gli utenti riavviano i loro dispositivi frequentemente. –

+0

Avete trovato qualche soluzione per questo? –

risposta

0

SQLiteLog è una classe che hai scritto o Google Analytics fornisce? Se stai usando un DBHelper puoi provare getWritableDatabase() su di esso.

Avete servizi a lungo termine che potrebbero utilizzare il vecchio database o avere qualche blocco in esso?

Si potrebbe anche provare a eseguire il bumping del numero di build nell'app e a esaminare una migrazione SQL.