在我的情况下,在启用 proguard 的情况下使用烧焦的 apk 时崩溃

问题描述

我正在使用实时数据观察概念——当隐藏这条线并开始构建时,它工作正常。如果我启用以下代码获取

  viewmodel.loadValue.observe(viewLifecycleOwner,Observer<String?> {
        toSelectPlaceSearchValue(it.toString())
    })

出现以下错误

  at .fragment.a(SourceFile:32)
    at g.j.a.c.j.i.j.a(SourceFile:7)
    at g.j.a.c.h.i.e.onTransact(SourceFile:3)
    at android.os.Binder.transact(Binder.java:504)
    at dx.aZ(:com.google.android.gms.dynamite_mapsdynamite@210915051@21.09.15 (040408-0):2)
    at com.google.maps.api.android.lib6.impl.bj.run(:com.google.android.gms.dynamite_mapsdynamite@210915051@21.09.15 (040408-0):1) at android.os.Handler.handleCallback(Handler.java:836)
    at android.os.Handler.dispatchMessage(Handler.java:103)
    at android.os.Looper.loop(Looper.java:203)
    at android.app.ActivityThread.main(ActivityThread.java:6293)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1065)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:926)

我的 Proguard 文件 txt

-保持类androidx.lifecycle.* { *; }

解决方法

我建议您在 proguard 规则中添加这两行,它肯定会起作用。

-keep class * extends androidx.lifecycle.ViewModel 
  {
    <init>();
  }
-keep class * extends androidx.lifecycle.AndroidViewModel 
  {
    <init>(android.app.Application);
  }

查看 link 以获取参考。

,

请试试这个 -keep class androidx.lifecycle.** { *; }