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 *; } 
  • ¿Cómo Proguard dos proyecto androide?
  • Proguard warning biblioteca clase android.webkit.WebView depende de la clase del programa android.webkit.WebViewClien
  • Proguard Android, mantener la clase interna
  • Comprensión de bloqueos y ANR con Proguard habilitado
  • Eclipse exportado apk
  • ¿Debo mantener android.support.v4.app.Fragment y sus clases derivadas al crear una versión de lanzamiento de mi aplicación?
  • Cómo configurar proguard para eliminar SOLAMENTE llamadas de registro de android
  • Android ProGuard + MultiDex causa ClassNotFoundException
  • GoogleAnalyticsV2 y Proguard
  • Eliminar todas las llamadas de registro de depuración antes de publicar: ¿hay herramientas para hacer esto?
  • La aplicación en la liberación se bloquea, mientras que en depuración no
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.