para descargar configurar auth android firebase android-proguard firebase-database firebaseui

android - descargar - firebase ui implementation



ConfiguraciĆ³n de Proguard para la biblioteca Firebase-UI (2)

Al crear una APK con proguard habilitado, se lanza la siguiente excepción cuando se usa FirebaseRecyclerAdapter de la biblioteca Firebase-UI ( com.firebaseui:firebase-ui:0.3.0 ):

java.lang.RuntimeException: java.lang.NoSuchMethodException: <init> [class android.view.View] at com.firebase.ui.FirebaseRecyclerAdapter.onCreateViewHolder(FirebaseRecyclerAdapter.java:168)

La versión de depuración (sin proguard) funciona bien. ¿Quién tiene una configuración proguard funcional para Firebase-UI?

Mi configuración de proguard actual se ve así (solo las partes relacionadas con Firebase):

-optimizationpasses 5 -keepattributes SourceFile,LineNumberTable,Exceptions, Signature, InnerClasses,*Annotation* -keepnames class ** { *; } -keep class com.firebase.** { *; } -keepnames class com.fasterxml.jackson.** { *; } -keepnames class javax.servlet.** { *; } -keepnames class org.ietf.jgss.** { *; }


Resolvió esto moviendo las clases de ViewHolder que usa FirebaseRecyclerAdapter a un paquete dedicado (por ejemplo, com.mypackage.myapp.viewholders) y agregando una regla dentro de la configuración de proguard para evitar que las clases dentro de este paquete sean ofuscadas por proguard:

-keep class com.mypackage.myapp.viewholders.** { *; }


Bueno, tenía mi ViewHolder dentro de FirebaseRecyclerAdapter relativo como una clase interna y me dio este error. Hacer que la clase interna haya resuelto el problema.

También https://github.com/firebase/FirebaseUI-Android/issues/46#issuecomment-167373575 dice lo mismo con una adición.

La clase interna ViewHolder debe ser public y static para que pueda iniciarse a través de la reflexión.