小编Tom*_*son的帖子

仅在运行 Android 12 的 Pixel 设备上出现 CannotDeliverBroadcastException

我发现 Crashlytics 发生了崩溃,但我无法重现或找到其原因。该崩溃仅发生在运行 Android 12 的 Google Pixel 设备上,并且崩溃始终发生在后台。

显示崩溃的图片仅发生在运行 Android 12 的 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)

我看过类似的问题(比如thisthis),但 Crashlytics 显示这些用户都有足够的可用内存,并且我们的代码库中没有任何地方可以调用registerReceiversendBroadcast所以第二个问题中的解决方案没有任何帮助。

根据有限的日志,我很确定当用户收到推送通知时会发生崩溃,但我有一台运行 Android 12 的 Google Pixel 4a,在向自己发送通知时根本无法重现它。

我们有一个习惯FirebaseMessagingService来监听我们在清单中注册的通知,还有一些BroadcastReceiver监听地理围栏更新并WorkManager在检测到转换时利用来执行一些工作。最近唯一改变的是我们更新为使用Android 的应用程序启动库WorkManager来初始化自身,但我不确定这是否相关,因为崩溃日志没有给我任何信息,以及我们的实现是否存在问题它不会仅限于运行 Android 12 的 Pixel 设备。

有人以前见过这个吗?或者运行 Android 12 的 Pixel 设备上是否存在专门的错误?我花了几个小时深入研究这个问题,但完全不知所措。

android broadcastreceiver google-pixel android-12

29
推荐指数
1
解决办法
7545
查看次数

使用带有字体的特定字符时文本被截断

我正在开发一个应用程序,我必须使用此 tff 文件中提供的字体,并且将unicode 字符 2019与此字体一起使用会破坏应用程序中的文本。我不确定这是字体问题还是 Android 问题,但我们的 iOS 团队没有遇到同样的问题,而且我对字体了解不够,无法.tff自己深入研究该文件,所以我在这里。

  • 如果应用程序启动后显示的第一个屏幕包含该字符,则某些字符的基线会向上移动,并且它们的顶部会完全被切断。
  • 这为应用程序开创了先例,之后看到的每个屏幕都会被截断其文本,即使它不包含该字符。
  • 但是,如果应用程序启动后显示的第一个屏幕不包含该字符,则之后显示的任何屏幕都会看起来很好 - 即使它们具有该字符。

我在一个准系统示例应用程序中复制了这个问题,除了应用字体并设置一些包含该字符的文本之外,该应用程序没有做任何特别的事情。基于 XML 的视图以及 Jetpack Compose 都会出现此问题,尽管上述“先例”对于每个实现都是唯一的(即,如果首先看到带有文本的 Compose 屏幕,它将破坏所有后续的 Compose 屏幕,但不会破坏 XML 屏幕) ,反之亦然)。

以下是在“Ive”中使用 U-2019(波浪撇号)与使用 U-0027(普通撇号)时的文本外观的一些示例:

U-2019 作曲(截止) U-2019 XML(截止)
在此输入图像描述 在此输入图像描述
U-0027 撰写(精细) U-0027 XML(精细)
在此输入图像描述 在此输入图像描述

那么文件中的特定字符有问题吗.tff?Android 框架中是否存在无法处理该角色的绘制方式的错误?还有别的事吗?

fonts android character

5
推荐指数
1
解决办法
241
查看次数