Используя Otto, метод подписывается только в том случае, если я вызываю его непосредственно в другом месте

У меня проблема, когда один из моих подписанных методов не получает сообщение о столбце правильного типа события, если этот подписанный метод не используется (называется) в другом месте.

Вот некоторая релевантная информация о коде:

  • Метод одного из моих классов аннотируется с помощью @Subscribe.
  • Поступая через код с помощью отладчика, я обнаружил, что под моими конкретными обстоятельствами класс не имеет методов, аннотированных с помощью @Subscribe.
  • Если я не вызову метод непосредственно в какой-то момент времени (не имеет значения, когда или даже если он действительно вызван во время выполнения) в другом месте, мой пост не работает.
  • IDE (Android Studio) уведомляет меня о том, что «метод никогда не используется»

Я могу, конечно, назвать метод в блоке кода, который, я уверен, никогда не выстрелит, но это, очевидно, ужасная практика, и побеждает цель этой парадигмы post / subscribe.

Или я могу сделать метод статическим, но я бы предпочел не потому, что я использовал переменные-члены внутри него.

Любые решения, почему это происходит, хотя пример Отто использует аналогичный шаблон

Оказывается, это была проблема ProGuard. Исправлено, добавив следующие строки:

-keepclassmembers class ** { @com.squareup.otto.Subscribe public *; @com.squareup.otto.Produce public *; }