Crash 日志如下:
--- crash start ---
[command] logcat -b crash -t '09-09 22:01:37.000' -d
--------- beginning of crash
09-09 22:01:38.691 8104 8127 E AndroidRuntime: FATAL EXCEPTION: launcher-loader
09-09 22:01:38.691 8104 8127 E AndroidRuntime: Process: com.google.android.apps.nexuslauncher, PID: 8104
09-09 22:01:38.691 8104 8127 E AndroidRuntime: java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.String java.lang.CharSequence.toString()' on a null object reference
09-09 22:01:38.691 8104 8127 E AndroidRuntime: at com.android.launcher3.icons.cache.BaseIconCache.addIconToDBAndMemCache(SourceFile:12)
09-09 22:01:38.691 8104 8127 E AndroidRuntime: at com.android.launcher3.icons.cache.IconCacheUpdateHandler$SerializedIconUpdateTask.run(SourceFile:21)
09-09 22:01:38.691 8104 8127 E AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:938)
09-09 22:01:38.691 8104 8127 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:99)
09-09 22:01:38.691 8104 8127 E AndroidRuntime: at android.os.Looper.loop(Looper.java:223)
09-09 22:01:38.691 8104 8127 E AndroidRuntime: at android.os.HandlerThread.run(HandlerThread.java:67)
--- crash end ---
用冰箱二分法找到了是一个叫做“Screen Recorder”的应用导致的,结合 FC log 可能是因为图标一类的 metadata 不规范导致没法加到 cache 里,杀之泄愤,毕竟 Android 11 自带了屏幕录像。