android - Firebase-UI 库的 Proguard 配置

标签 android firebase android-proguard firebase-realtime-database firebaseui

在创建启用混淆器的 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)

调试版本(没有 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.** { *; }

最佳答案

通过将 FirebaseRecyclerAdapter 使用的 ViewHolder 类移动到专用包(例如 com.mypackage.myapp.viewholders)并在proguard 配置以防止此包中的类被 proguard 混淆:

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

关于android - Firebase-UI 库的 Proguard 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34710582/

相关文章:

java - RxJava2 - 如何编写分组项目的自定义逻辑?

android - android ndk中的unicode支持

javascript - 如何按计划从 Firebase 数据库中删除数据

java - Android M - SSLSocket 连接中的 SSLHandshakeException

java - 如何在 Firestore 中存储富文本编辑器数据?

java - 如何将 Cloud Firestore 中的异步数据保存为变量?

java - firebase 分析中的事件 "first_open"如何计数?

android - 生成签名 Apk - 任务 ':app:transformClassesWithDexForRelease' 执行失败

java - 在android中设置proguard规则,它可以只加密代码吗?

android - 如何在android中排除外部第三方依赖的ProGuard