2013-03-27 1 views
44

Я только что выпустил приложение с биллингами в приложении. До сих пор не сообщалось о сбоях в игре Google (это происходит только тогда, когда пользователь берет на себя труд сообщать об аварии), но у меня есть некоторые сообщения о сбоях через шквал (который является автоматическим). Отчеты о сбоях заключаются в следующем:Биллинг в приложении (v3) - IllegalArgumentException: Сервис не зарегистрирован:

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

Это происходит только на < 1% от расстрелов моего приложения.

Поправьте меня, если я ошибаюсь, но кажется, что номер строки аварии не приводится в докладе шквал :-(

Я даже не уверен, что означает, что этот отчет аварии, не говоря уже о как это исправить. есть идеи?

+0

У меня такая же проблема. Это не БОЛЬШАЯ сделка, но это то, что беспокоит. Я нашел аналогичную проблему в github: https://github.com/ianhanniballake/ContractionTimer/commit/b3643e8fd1d59a508fe6764398cb22de671c4cea Считаете ли вы, что это может быть та же проблема? – gian1200

+0

Причина, по которой этот сбой случается сейчас так часто, заключается в том, что он может быть воспроизведен только тогда, когда помощник по выставлению счетов InApp не настроен должным образом. Это произойдет только на устройствах с очень старой версией приложения Google Play без приложения Google Play (Kindle Fire) – GaRRaPeTa

+0

@GaRRaPeTaAbsolutely true. Только загруженный API-уровень 16 на реальном устройстве и бум разбился на первом экране :) – IcyFlame

ответ

106

Я считаю, что это ошибка в IabHelper.java.

в IabHelper выбрасывайте метод, следующую строку,

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

должен быть изменено на это.

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

mService устанавливается только после того, как служба была зарегистрирована, поэтому проверка его! = NULL гарантирует, что сервис действительно зарегистрирован, прежде чем пытаться отвязать от него.

+18

Весь IabHelper чрезвычайно глючит. Должно быть переоформлено. – tmanthey

+3

@tmanthey: есть ли альтернативный не-глючный код, на который мы можем смотреть? – Mick

+0

В последнее время у меня очень похожая авария, но код выглядит так, как вы писали. Как это могло произойти? –

Смежные вопросы