簡體   English   中英

發布構建應用程序崩潰導致 proguard 規則

[英]Release build app crashes cause of proguard rules

我的應用程序中有一堆 Recycler 視圖,它們從 firestore 數據庫中獲取數據。 在我的調試應用程序中一切正常,但是當我在我的 proguard 中添加minifyEnabled true時,一切正常,但活動主機回收器失敗並出現以下 logcat 錯誤。 我完全不知道如何為 model 類添加保護規則

我剛剛做了我的堆棧跟蹤,這是錯誤

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)

可能是因為proguard而有問題,請確保只是嘗試在您的發布構建類型中禁用縮小

buildTypes {
    release {
        minifyEnabled false
        ------
      }
    }

在您的 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM