[英]Release build app crashes cause of proguard rules
I have a bunch of Recycler views in my app that gets data from the firestore database.我的应用程序中有一堆 Recycler 视图,它们从 firestore 数据库中获取数据。 Everything went fine in my debug app but when I added
minifyEnabled true
In my proguard everything worked fine but the activity hosts recycler fails with the below logcat error.在我的调试应用程序中一切正常,但是当我在我的 proguard 中添加
minifyEnabled true
时,一切正常,但活动主机回收器失败并出现以下 logcat 错误。 I'm totally unaware of how to add the proguard rules for the model classes我完全不知道如何为 model 类添加保护规则
I just made my stacktrace and this is the error我刚刚做了我的堆栈跟踪,这是错误
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.swf.sahrudhayafoundation, PID: 30519
java.lang.RuntimeException: No properties to serialize found on class com.swf.sahrudhayafoundation.q.b
at com.google.firebase.firestore.o0.l$a.<init>(:714)
at com.google.firebase.firestore.o0.l.z(:377)
at com.google.firebase.firestore.o0.l.e(:540)
at com.google.firebase.firestore.o0.l.s(:253)
at com.google.firebase.firestore.o0.l.p(:100)
at com.google.firebase.firestore.i.o(:187)
at com.google.firebase.firestore.z.o(:116)
at com.google.firebase.firestore.i.n(:165)
at com.google.firebase.firestore.z.n(:97)
at com.firebase.ui.firestore.b.b(:23)
at com.firebase.ui.firestore.b.a(:12)
at c.a.a.a.a.a(:36)
at c.a.a.a.c.get(:52)
at com.firebase.ui.firestore.FirestoreRecyclerAdapter.I(:86)
at com.firebase.ui.firestore.FirestoreRecyclerAdapter.x(:158)
at androidx.recyclerview.widget.RecyclerView$g.y(:7065)
at androidx.recyclerview.widget.RecyclerView$g.k(:7107)
at androidx.recyclerview.widget.RecyclerView$v.H(:6012)
at androidx.recyclerview.widget.RecyclerView$v.I(:6279)
at androidx.recyclerview.widget.RecyclerView$v.p(:6118)
at androidx.recyclerview.widget.RecyclerView$v.o(:6114)
at androidx.recyclerview.widget.LinearLayoutManager$c.d(:2303)
at androidx.recyclerview.widget.LinearLayoutManager.s2(:1627)
at androidx.recyclerview.widget.LinearLayoutManager.U1(:1587)
at androidx.recyclerview.widget.LinearLayoutManager.X0(:665)
at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(:4134)
at androidx.recyclerview.widget.RecyclerView.onMeasure(:3540)
at android.view.View.measure(View.java:24817)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6934)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:842)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:721)
at android.view.View.measure(View.java:24817)
at android.widget.ScrollView.measureChildWithMargins(ScrollView.java:1455)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at android.widget.ScrollView.onMeasure(ScrollView.java:475)
at android.view.View.measure(View.java:24817)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6934)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at androidx.appcompat.widget.ContentFrameLayout.onMeasure(:143)
at android.view.View.measure(View.java:24817)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6934)
at androidx.appcompat.widget.ActionBarOverlayLayout.onMeasure(:403)
at android.view.View.measure(View.java:24817)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6934)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at android.view.View.measure(View.java:24817)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6934)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:842)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:721)
at android.view.View.measure(View.java:24817)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6934)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at com.android.internal.policy.DecorView.onMeasure(DecorView.java:795)
at android.view.View.measure(View.java:24817)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:3361)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:2121)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2415)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2005)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8204)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1085)
at android.view.Choreographer.doCallbacks(Choreographer.java:908)
at android.view.Choreographer.doFrame(Choreographer.java:835)
E/AndroidRuntime: at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1070)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:228)
at android.app.ActivityThread.main(ActivityThread.java:7782)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:981)
May be you have problem because of proguard, to be sure just try by disabling minify in your release build type可能是因为proguard而有问题,请确保只是尝试在您的发布构建类型中禁用缩小
buildTypes {
release {
minifyEnabled false
------
}
}
Add below code in your proguard rule在您的 proguard 规则中添加以下代码
-keep class package.to.yourmodels.** { *; }
-keepattributes *Annotation*
-keepattributes Signature
-dontwarn com.squareup.okhttp.*
-dontwarn rx.**
-dontwarn retrofit2.**
-keep class retrofit2.** { *; }
-keepattributes Exceptions
-keepattributes RuntimeVisibleAnnotations
-keepattributes RuntimeInvisibleAnnotations
-keepattributes RuntimeVisibleParameterAnnotations
-keepattributes RuntimeInvisibleParameterAnnotations
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.