Биллинг в приложении (v3) - IllegalArgumentException: Услуга не зарегистрирована:
Я только что выпустил приложение с биллингами в приложении. До сих пор не сообщалось о сбоях в игре Google (это происходит только тогда, когда пользователь берет на себя труд сообщать об аварии), но у меня есть некоторые сообщения о сбоях через шквал (который является автоматическим). Отчеты о сбоях выглядят следующим образом:
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% исполнений моего приложения.
Исправьте меня, если я ошибаюсь, но кажется, что номер строки аварии не указан в отчете о путях: - (
Я даже не уверен, что означает этот отчет о сбое, не говоря уже о том, как его исправить. Любые идеи?
Ответы
Ответ 1
Я считаю, что это ошибка в IabHelper.java.
В методе IabHelper dispose, следующая строка,
if (mContext != null) mContext.unbindService(mServiceConn);
следует изменить на это.
if (mContext != null && mService != null) mContext.unbindService(mServiceConn);
mService устанавливается только после регистрации Сервиса, поэтому проверка его на!= null гарантирует, что служба действительно зарегистрирована, прежде чем мы попытаемся отвязать ее.