【问题标题】:Android Activity::onCreate called before Application.onCreateAndroid Activity::onCreate 在 Application.onCreate 之前调用
【发布时间】:2019-06-27 16:35:07
【问题描述】:

在某些情况下,我可以看到 Activity.onCreate 在 Appication 对象被创建之前被调用(在 Application.onCreate 被调用之前)。这有可能吗?

【问题讨论】:

  • 不应该。您如何确定这种情况正在发生?
  • 你能分享你的清单文件吗
  • 您介意分享您正在谈论的案例吗?
  • 我现在也面临同样的问题。它以前工作正常,但从今天开始我收到此错误
  • 我也有同样的问题

标签: android android-activity


【解决方案1】:

可能是您忘记在清单文件中添加您的应用程序类。

将您的应用程序类放在<application> 标记下的AndroidManifest.xml 类中。
即,

<application
    android:name=".{YourApplicationClassName}"
    ...
    ...

【讨论】:

    【解决方案2】:

    在某些情况下,我可以看到 Activity.onCreate 在 Appication 对象被创建(在 Application.onCreate 之前 调用)。

    这不是 Android 文档中关于 Application 类的内容。根据官方的android文档,

    Application 类或 Application 类的子类是 当您的流程为您的任何其他类之前实例化 应用程序/包已创建。

    下面还有一个Application类的onCreate()的具体解释

    在应用程序启动时调用,在任何活动、服务之前, 或接收者对象(不包括内容提供者)已创建。

    因此必须首先调用 Application 的 onCreate(),然后调用 Activity 类的 onCreate()

    所以你提到的场景按照Application类和Activity类的实例化流程是不可能的

    【讨论】:

      【解决方案3】:

      如果您使用日志记录来确定应用程序的创建时间,请检查您是否使用外部日志记录系统,例如通常在应用程序末尾实例化的 Timber onCreate()。所以在这个系统被调用的时候可能看起来什么都没有被实例化。

      尝试在应用程序onCreate() 中的super.onCreate() 之前实例化日志记录工具。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-03-24
        • 2015-07-29
        • 1970-01-01
        • 1970-01-01
        • 2012-08-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多