我发现 Crashlytics 发生了崩溃,但我无法重现或找到其原因。该崩溃仅发生在运行 Android 12 的 Google Pixel 设备上,并且崩溃始终发生在后台。
这是来自 Crashlytics 的崩溃日志:
Fatal Exception: android.app.RemoteServiceException$CannotDeliverBroadcastException: can't deliver broadcast
at android.app.ActivityThread.throwRemoteServiceException(ActivityThread.java:1939)
at android.app.ActivityThread.access$2700(ActivityThread.java:256)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2190)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7870)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
Run Code Online (Sandbox Code Playgroud)
我看过类似的问题(比如this和this),但 Crashlytics 显示这些用户都有足够的可用内存,并且我们的代码库中没有任何地方可以调用registerReceiver,sendBroadcast所以第二个问题中的解决方案没有任何帮助。
根据有限的日志,我很确定当用户收到推送通知时会发生崩溃,但我有一台运行 Android 12 的 Google Pixel 4a,在向自己发送通知时根本无法重现它。
我们有一个习惯FirebaseMessagingService来监听我们在清单中注册的通知,还有一些BroadcastReceiver监听地理围栏更新并WorkManager在检测到转换时利用来执行一些工作。最近唯一改变的是我们更新为使用Android 的应用程序启动库WorkManager来初始化自身,但我不确定这是否相关,因为崩溃日志没有给我任何信息,以及我们的实现是否存在问题它不会仅限于运行 Android 12 的 Pixel 设备。
有人以前见过这个吗?或者运行 Android 12 的 Pixel 设备上是否存在专门的错误?我花了几个小时深入研究这个问题,但完全不知所措。
我正在开发一个应用程序,我必须使用此 tff 文件中提供的字体,并且将unicode 字符 2019与此字体一起使用会破坏应用程序中的文本。我不确定这是字体问题还是 Android 问题,但我们的 iOS 团队没有遇到同样的问题,而且我对字体了解不够,无法.tff自己深入研究该文件,所以我在这里。
我在一个准系统示例应用程序中复制了这个问题,除了应用字体并设置一些包含该字符的文本之外,该应用程序没有做任何特别的事情。基于 XML 的视图以及 Jetpack Compose 都会出现此问题,尽管上述“先例”对于每个实现都是唯一的(即,如果首先看到带有文本的 Compose 屏幕,它将破坏所有后续的 Compose 屏幕,但不会破坏 XML 屏幕) ,反之亦然)。
以下是在“Ive”中使用 U-2019(波浪撇号)与使用 U-0027(普通撇号)时的文本外观的一些示例:
那么文件中的特定字符有问题吗.tff?Android 框架中是否存在无法处理该角色的绘制方式的错误?还有别的事吗?