Firebase-UI 库的 Proguard 配置
Proguard configuration for Firebase-UI library
创建启用混淆器的 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)并在混淆器配置中添加规则来解决此问题防止此包中的 类 被混淆器混淆:
-keep class com.mypackage.myapp.viewholders.** { *; }
嗯,我有我的 ViewHolder
内部亲戚 FirebaseRecyclerAdapter
作为内部 class 并给了我这个错误。制作内class已经解决问题
另外 https://github.com/firebase/FirebaseUI-Android/issues/46#issuecomment-167373575 说了同样的事情,但增加了一个。
内部classViewHolder
必须是public
和static
才能通过反射启动。
创建启用混淆器的 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)并在混淆器配置中添加规则来解决此问题防止此包中的 类 被混淆器混淆:
-keep class com.mypackage.myapp.viewholders.** { *; }
嗯,我有我的 ViewHolder
内部亲戚 FirebaseRecyclerAdapter
作为内部 class 并给了我这个错误。制作内class已经解决问题
另外 https://github.com/firebase/FirebaseUI-Android/issues/46#issuecomment-167373575 说了同样的事情,但增加了一个。
内部classViewHolder
必须是public
和static
才能通过反射启动。