Android:this.getApplication()返回NULL指针

时间:2009-10-09 09:31:37

标签: android nullpointerexception

我在一个Activity中运行以下行,该行位于同一个应用程序中,但位于不同的包中:

AppObject appObj = (AppObject)this.getApplication();
// FYI: AppObject is my extension class of Application.

它只返回一个空指针,而当我将它移动到“main”包并从那里运行时,它会按预期返回应用程序引用。

我已在AndroidManifest.xml中使用完全限定的类名定义了活动,因为它位于另一个包中:<activity android:name="com.foo.bar.TestActivity"></activity>


更新:根据以下问题中的建议android:name="AppObject"已经在AndroidManifest.xml的<application>标记中

4 个答案:

答案 0 :(得分:21)

在活动的getApplication()方法中调用onCreate()非常重要,而不是在构造函数中调用。

答案 1 :(得分:4)

您需要使用您的类名更新应用程序标记到AndroidManifest.xml,该类名称是从Application扩展的,具有正确的程序包名称。

<application android:name=".AppObject">


根据应用程序标记google docs,基类,适用于需要维护全局应用程序状态的用户。您可以通过在AndroidManifest.xml的标记中指定其名称来提供自己的实现,这将导致在创建应用程序/包的过程时为您实例化该类。

here

答案 2 :(得分:1)

刚刚遇到同样的事情,重构了我的所有代码仍然遇到了同样的问题,注意到我在构造函数中设置了本地mApplication变量,它应该进入onCreate(),我我认为清单中的所有对象可以在getApplication()设置之前先构建,因此您需要在调用getApplication()之后或之后调用onCreate()。没有重新重构我的所有代码,看看它是否适用于不同的包(叹气)。

答案 3 :(得分:-2)

我认为,它不是null指针,但您想要在类AppObject中使用的函数可能是错误的。