Firebase-UI库的Proguard配置

Pet*_*ter 3 android firebase firebase-realtime-database android-proguard firebaseui

在创建启用了proguard的APK时,使用Firebase-UI库(com.firebaseui:firebase-ui:0.3.0)中的FirebaseRecyclerAdapter时会引发以下异常:

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

调试版本(没有proguard)工作正常.谁有Firebase-UI的工作程序配置?

我当前的proguard配置看起来像这样(只有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.** { *; }
Run Code Online (Sandbox Code Playgroud)

Pet*_*ter 12

通过将ViewHolder所使用的类移动FirebaseRecyclerAdapter到专用包(例如com.mypackage.myapp.viewholders)并在proguard配置中添加规则来解决此问题,以防止此包中的类被proguard混淆:

-keep class com.mypackage.myapp.viewholders.** { *; }
Run Code Online (Sandbox Code Playgroud)

  • 我已经尝试了在 StackOverflow 上找到的所有其他解决方案,但只有这个对我有用!谢谢!! (2认同)