Utilizando Otto, el método sólo se suscribe si lo llamo directamente a otra parte

Tengo un problema en el que uno de mis métodos suscritos no se llama a un puesto del tipo de evento correcto a menos que el método suscrito se utiliza (llamado) en otro lugar.

Aquí hay información relevante sobre el código:

  • Un método de una de mis clases está anotado con @Subscribe.
  • Al pasar por el código con el depurador, encuentro que bajo mi circunstancia específica, la clase no tiene ningún método anotado con @Subscribe.
  • A menos que yo llame el método directamente en algún momento en el tiempo (no importa cuándo, o incluso si realmente se llama en tiempo de ejecución) en otro lugar, mi puesto no funciona.
  • El IDE (Android Studio) me notifica que el "método nunca se utiliza"

Ciertamente puedo llamar al método en un bloque de código que estoy seguro de que nunca se disparará, pero esto es obviamente terrible práctica, y derrota el propósito de este post / subscribe paradigma.

O puedo hacer que el método sea estático, pero preferiría no porque utilice variables miembro dentro de ella.

Cualquier solución a porqué esto está ocurriendo aunque el ejemplo de Otto utiliza un patrón similar

One Solution collect form web for “Utilizando Otto, el método sólo se suscribe si lo llamo directamente a otra parte”

Resulta que fue un problema de ProGuard. Se corrigió agregando las líneas siguientes:

-keepclassmembers class ** { @com.squareup.otto.Subscribe public *; @com.squareup.otto.Produce public *; } 
  • Proguard rompe Android WebView, ¿Por qué?
  • Android: ¿Es seguro poner una cadena sensible en mi código Java?
  • NoClassDefFoundError al usar proguard
  • Proguard Retrace no funciona con información de tiempo de ejecución de stacktrace como E / AndroidRuntime (10237):
  • PerferenceActivity con PreferenceFragment falla en el dispositivo con proguard okay sin proguard
  • ¿Debo mantener android.support.v4.app.Fragment y sus clases derivadas al crear una versión de lanzamiento de mi aplicación?
  • ¿Cómo comentas una regla en Proguard.cfg?
  • ¿Cómo usar el ProGuard en Android Studio?
  • Proguard Printmapping no funciona en Android Studio 2.0.0 (y 2.1.0)
  • Eliminar actividad de apk a través de Proguard
  • Cómo configurar ProGuard para omitir métodos con SupressWarning ("unused")
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.