大约 4 小时后,我可以自己回答这个问题,我希望这能让其他人免于绝望。
R8 删除了一些必要的回调。我煞费苦心地检查了所有内容,并将其缩小到以下缺失:
20745,20751d20744
< androidx.lifecycle.ReportFragment$1
< public void onActivityPostCreated(android.app.Activity,android.os.Bundle)
< public void onActivityPostStarted(android.app.Activity)
< public void onActivityPostResumed(android.app.Activity)
< public void onActivityPrePaused(android.app.Activity)
< public void onActivityPreStopped(android.app.Activity)
< public void onActivityPreDestroyed(android.app.Activity)
27034,27037d27026
< androidx.lifecycle.ReportFragment$ActivityInitializationListener
< public abstract void onCreate()
< public abstract void onStart()
< public abstract void onResume()
仅当您针对 API 28 进行编译,但在 API 29 上运行您的代码时,才会出现此问题。
对此有一个未解决的问题单:
https ://issuetracker.google.com/issues/142778206
要解决此问题,您可以使用compileSdkVersion 29
或包含以下 proguard 规则:
-keepclassmembers class * extends androidx.lifecycle.EmptyActivityLifecycleCallbacks { *; }
-keepclassmembers class androidx.lifecycle.ReportFragment$** { *; }