2013-03-27 20 views
44

Ho appena rilasciato un'applicazione con fatturazione in-app. Fino ad ora non sono stati segnalati arresti anomali su google play (questo accade solo quando l'utente si prende la briga di segnalare il crash) ma ho alcuni rapporti di arresti anomali via flurry (che è automatico). Le segnalazioni di crash sono i seguenti:Fatturazione in-app (v3) - IllegalArgumentException: servizio non registrato:

class java.lang.RuntimeException 
Msg: android.app.ActivityThread.performDestroyActivity:3655 (Unable to destroy activity {com.mycompany.mygame/com.mycompany.mygame.Splashscreen}: java.lang.IllegalArgumentException: Service not registered: [email protected]) 

Questo accade solo su < 1% delle esecuzioni di mia app.

mi corregga se sbaglio, ma sembra che il numero di riga dello schianto non è dato nella relazione raffica :-(

io non sono nemmeno sicuro che cosa significa questa relazione crash, per non parlare come risolvere il problema. Tutte le idee?

+0

Ho lo stesso problema. Non è un grosso affare, ma è qualcosa che disturba. Ho trovato un problema simile in github: https://github.com/ianhanniballake/ContractionTimer/commit/b3643e8fd1d59a508fe6764398cb22de671c4cea Pensi che questo potrebbe essere lo stesso problema? – gian1200

+0

Il motivo per cui questo arresto si verifica ora così spesso è perché può essere riproducibile solo quando l'assistente di fatturazione InApp non è stato impostato correttamente. Ciò avverrà solo in dispositivi con una versione molto vecchia dell'app Google Play senza app Google Play (Kindle Fire) – GaRRaPeTa

+0

@GaRRaPeTaAbssolutamente true. Appena caricato il livello API 16 su un dispositivo reale, e boom, si è schiantato sul primo schermo :) – IcyFlame

risposta

106

credo che questo sia un bug in IabHelper.java.

in IabHelper metodo, la seguente riga smaltire,

  if (mContext != null) mContext.unbindService(mServiceConn); 

dovrebbe essere cambiato in questo

  if (mContext != null && mService != null) mContext.unbindService(mServiceConn); 

MSERVICE viene impostato solo una volta che il servizio è stato registrato, quindi si verifica che non! = Null garantirà che il servizio è infatti registrata, prima di cercare di separare da esso.

+18

L'intero IabHelper è estremamente buggato. Dovrebbe essere reimplementato. – tmanthey

+3

@ tmanthey: c'è un codice alternativo non buggato che possiamo invece guardare? – Mick

+0

Recentemente ho avuto un crash molto simile, eppure il codice sembra quello che hai scritto. Come potrebbe essere? –

Problemi correlati