Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android: this.getApplication() returns NULL pointer

I'm running the following line in an Activity, which is within the same application, but in a different package:

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

It returns only a null pointer, while when I move it to the "main" package and run it from there it returns the application reference as expected.

I've defined the activity in my AndroidManifest.xml with the full qualified class name, since it is in another package: <activity android:name="com.foo.bar.TestActivity"></activity>


Update: As suggested in a question below android:name="AppObject" was already in the <application> tag of the AndroidManifest.xml

like image 504
znq Avatar asked Oct 09 '09 09:10

znq


3 Answers

It's important to call getApplication() in the activity's onCreate() method, not in the constructor.

like image 150
mivola Avatar answered Oct 23 '22 19:10

mivola


You need the update application tag to AndroidManifest.xml with your class name, which is extended from Application, with proper package name.

<application android:name=".AppObject">


As per Application tag google docs, Base class for those who need to maintain global application state. You can provide your own implementation by specifying its name in your AndroidManifest.xml's tag, which will cause that class to be instantiated for you when the process for your application/package is created.

here

like image 26
bhatt4982 Avatar answered Oct 23 '22 19:10

bhatt4982


Just run into the same thing, having refactored all my code still got the same issue, noticed that I was setting the local mApplication variable in the constructor, it should go in the onCreate(), I think all the objects in the manifest may be constructed first before getApplication() is setup so you need to call getApplication() in or after onCreate() has been called. Haven't refactored all my code back again to see if this works for different packages (sigh).

like image 1
aronp Avatar answered Oct 23 '22 17:10

aronp