自定义应用程序类不会在牛轧糖中随机覆盖



我有一个自定义应用程序,称为ProApplication,我在清单中定义如下:

    <application
       android:name=".ProApplication"
       android:allowBackup="true"
       android:fullBackupContent="false"
       android:hardwareAccelerated="true"
       android:icon="@drawable/appicon"

它工作正常且花花公子,我在该类的 onCreate(( 方法中执行所有基本的应用程序初始化。但是随机地我得到崩溃,因为当我调用getApplication((并将其转换为ProApplication时,我得到了一个classCastException。它认为getApplication((应该返回Application,而不是我覆盖的ProApplication。

这只发生在 android 版本 7.0 上,并且很少有应用程序启动。但是发生这些崩溃时最常见的设备是:

  1. 荣耀 9 (HWSTF( 8 25,8 %
  2. 荣耀 8 专业版 (HWDUK( 8 25,8 %
  3. P10 Plus (HWVKY( 7 22,6 %
  4. 荣耀 8 (HWFRD( 5 16,1 %
  5. P10 (硬件重量( 3 9,7 %

所以我的问题是,为什么我的覆盖应用程序类 ProApplication 被运行 android 7.0 的设备上的操作系统随机忽略?

似乎这是一个Android 7.0操作系统错误。我终于找到了这个链接:issutracker.google

答案如下:

状态:无法修复(已过时( 是的,这是一个已知问题;并在 7.1 中得到了很大程度的解决。 正如您从分析中看到的那样,7.1 中仍有一些边缘情况可能导致类似的情况,但机会窗口要窄得多,Android 8 也解决了这些问题。

因此,基本上解决问题的唯一方法是删除自定义应用程序类。而且,如果您必须拥有一个,那么人类已知的唯一解决方法是建议您的用户在遇到此问题时重新启动手机。清除应用程序数据 och 从内存中删除应用程序不起作用。

最新更新