【问题标题】:Android Application sub-class constructor not being called未调用Android应用程序子类构造函数
【发布时间】:2011-04-21 20:29:37
【问题描述】:

我的 Android 应用程序中有一个类,它是 AndroidApplication 对象的子类。文件说:

public void onCreate()

自:API 级别 1 调用时调用 应用程序开始之前,任何 其他应用程序对象已 创建的。实现应该是 尽可能快(例如使用 状态的延迟初始化)因为 在这个函数中花费的时间 直接影响性能 开始第一个活动,服务, 或进程中的接收者。如果你 重写此方法,请务必

调用 super.onCreate()。

我在子类的构造函数上放置了一个断点,当我运行我的应用程序时,它永远不会到达。自然,当我从其他代码调用子类的 getInstance() 方法时,它返回 NULL,因为实例变量在调用构造函数时(应该是)被初始化。

谁能告诉我有什么问题?我会从文档中假设我不必自己创建 AndroidApplication 子类的实例,或者是吗?我是否应该以某种方式修改我的清单文件以添加 AndroidApplication 子类,如果是,如何修改?

-- 罗施勒

【问题讨论】:

  • 你能出示你的代码吗?
  • 你是否也在 Manifest 中声明了你的 Application 类?

标签: android constructor android-manifest


【解决方案1】:

我在这里为其他人发布答案。是的,您需要将 Application 对象子类的名称添加到 Android 清单中。对于 Eclipse 用户,最简单的方法是打开 AndroidManifest.xml 文件,在清单编辑器中选择 Application 选项卡,然后使用 Name 字段旁边的 Browse 按钮​​找到您的 Android 应用程序对象子类名称并选择它。清单文件将正确更新以注册它。我只是这样做了,它奏效了。

【讨论】:

  • 感谢一百万!多亏了这一点,我注意到我不小心将 name="MyApp" 而不是 android: name="MyApp" 放在清单中,我想知道为什么我的构造函数从未被调用...
【解决方案2】:

我遇到了没有 .在我的应用程序类名之前。 应该: android:name=".MyApp"

因为 MyApp 类位于清单中定义的包中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-17
    • 2018-02-28
    • 2017-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-17
    • 2012-10-18
    相关资源
    最近更新 更多