Конфигурация ProGuard шины событий Greenrobot

Я использую Eventbus в своем приложении, и он отлично работает в режиме отладки, но не работает на выпуске APK.

Следующий код, используемый для настройки ProGuard:

  -keepattributes *Annotation*
  -keepclassmembers class ** {
    @org.greenrobot.eventbus.Subscribe <methods>;
   }
  -keep enum org.greenrobot.eventbus.ThreadMode { *; }

Все мои аннотированные методы подписки также общедоступны

Выход Logcat:

Не удалось отправить событие: класс com.dhaval.example.model.entity.response.DashboardUnreadStoryResponse для подписки класса класса com.dhaval.example.view.activity.MainActivity java.lang.NullPointerException: попытка вызвать виртуальный метод java.lang. Строка com.dhaval.example.model.entity.Dashboard.ba()'для ссылки на пустой объект в com.dhaval.example.view.activity.MainActivity.b(SourceFile:150) в com.dhaval.example.view.activity.MainActivity.onEventBusEvent(SourceFile:560) на java.lang.reflect.Method.invoke(собственный метод) на org.greenrobot.eventbus.ca(SourceFile:485) на org.greenrobot.eventbus.ca(SourceFile:420) на org.greenrobot.eventbus.ca(SourceFile:397) на org.greenrobot.eventbus.ca(SourceFile:370) на org.greenrobot.eventbus.cd(SourceFile:251) на com.dhaval.example.view.ar$1.a(SourceFile:140) на com.dhaval.example.view.ar$1.a(SourceFile:130) на com.dhaval.example.f.ap$2.a(SourceFile:90) на com.dhaval.example.f.ap$2.a(SourceFile:85) на com.dhaval.example.network.a$1.a_(SourceFile:101) в rx.caa_(SourceFile:134) в rx.internal.operators.n$aa(SourceFile:224) в rx.abb$b.run(SourceFile:107) в android.os.Handler.handleCallback(обработчик.java:751) на android.os.Handler.dispatchMessage(Handler.java:95) на android.os.Looper.loop(Looper.java:154) на android.app.ActivityThread.main(ActivityThread.java:6290) на java.lang.reflect.Method.invoke(собственный метод) на com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) на com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 07-14 11:39:43.640 16402-16402/com.dhaval.example D/EventBus: нет подписчиков, зарегистрированных для класса событий org.greenrobot.eventbus.j 07-14 11:39:43.657 16402-16402/com.dhaval.example E/com.dhaval.example.view.ar$1: ошибка в getResponse: попытка вызвать виртуальный метод 'java.lang.String com.dhaval.example.model.entity.Dashboard.ba ()' в нулевая ссылка на объект

1 ответ

Определенно звучит как proguard, но, вероятно, не о eventbus, а о вашем собственном классе model.entity.Dashboard. Может быть, вам нужно добавить этот model.entity.Dashboard в исключения proguard:

-keep class model.entity.Dashboard.** { *; } 
Другие вопросы по тегам