2013-03-27 11 views
44

Właśnie wydałem aplikację z rozliczeniem w aplikacji. Do tej pory nie zgłoszono żadnych wypadków do gry w Google Play (dzieje się tak tylko wtedy, gdy użytkownik zadaje sobie trud zgłoszenia awarii), ale mam kilka zgłoszeń awarii za pośrednictwem Flurry (która jest automatyczna). Raporty o awariach są następujące:Rozliczenia w aplikacji (v3) - wyjątek IllegalArgumentException: usługa niezarejestrowana:

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]) 

Dzieje się tak tylko na < 1% egzekucji mojej aplikacji.

Popraw mnie jeśli się mylę, ale wydaje się, że liczba linii katastrofy nie jest podana w raporcie ulewa :-(

Nie jestem nawet pewien, co to znaczy raport awarii, nie wspominając jak to naprawić. Jakieś pomysły?

+0

Mam ten sam problem. To nie jest DUŻĄ ofertę, ale to jest coś, co przeszkadza. Znalazłem podobny problem w github: https://github.com/ianhanniballake/ContractionTimer/commit/b3643e8fd1d59a508fe6764398cb22de671c4cea Czy uważasz, że to może być ten sam problem? – gian1200

+0

Powodem tej awarii jest teraz tak często, ponieważ może być odtwarzalny tylko wtedy, gdy pomocnik rozliczeniowy InApp nie został poprawnie skonfigurowany. Stanie się tak tylko na urządzeniach z bardzo starą wersją aplikacji Google Play bez aplikacji Google Play (Kindle Fire) – GaRRaPeTa

+0

@GaRRaPeTaAbsolutely true. Właśnie załadowałem poziom interfejsu API 16 na prawdziwe urządzenie, a bum rozbił się na pierwszym ekranie :) – IcyFlame

Odpowiedz

106

wierzę, że jest to błąd w IabHelper.java.

w IabHelper dysponowania sposób następujący wiersz,

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

powinien być zmienionym na to.

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

mService jest ustawiony tylko raz usługa została zarejestrowana, więc sprawdzić ją! = Null gwarantuje, że usługa jest rzeczywiście zarejestrowany, zanim spróbujemy rozwiązać z nim.

+18

Cała wersja IabHelper jest wyjątkowo błędna. Powinien zostać ponownie wdrożony. – tmanthey

+3

@tmanthey: czy jest jakiś alternatywny, niezwiązany z błędami kod, na który możemy spojrzeć? – Mick

+0

Ostatnio miałem bardzo podobną awarię, ale kod wygląda tak, jak napisałeś. Jak to mogło się stać? –

Powiązane problemy