简体   繁体   中英

Java.lang.NullPointerException at getapplicationContext() while initiating adapter

While running the project on Android emulator,I face the exception as java.lang.NullPointerException at getApplicationContext.Please help me to resolve this issue.

Error

07-19 15:08:07.811: D/AndroidRuntime(366): Shutting down VM
07-19 15:08:07.811: W/dalvikvm(366): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
07-19 15:08:07.841: E/AndroidRuntime(366): FATAL EXCEPTION: main
07-19 15:08:07.841: E/AndroidRuntime(366): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{org.TfsMutualFund/org.TfsMutualFund.loading}: java.lang.NullPointerException
07-19 15:08:07.841: E/AndroidRuntime(366):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)
07-19 15:08:07.841: E/AndroidRuntime(366):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)

07-19 15:08:07.841: E/AndroidRuntime(366): Caused by: java.lang.NullPointerException
07-19 15:08:07.841: E/AndroidRuntime(366):  at android.content.ContextWrapper.getApplicationContext(ContextWrapper.java:100)
07-19 15:08:07.841: E/AndroidRuntime(366):  at org.TfsMutualFund.loading.<init>(loading.java:23)

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
 package="org.TfsMutualFund">   
<uses-sdk android:targetSdkVersion="8" />

<application android:name=".globalAdapter" android:icon="@drawable/icon" android:label="@string/app_name">

    <activity android:name=".loading"
              android:label="@string/app_name"
              android:theme="@android:style/Theme.NoTitleBar"
              android:configChanges="orientation|keyboard|keyboardHidden">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".TFSManinActivity"
    android:configChanges="orientation|keyboard|keyboardHidden"/>
</application>

loading.java

package org.TfsMutualFund;

public class loading extends Activity{
private static ArrayAdapter<String> adapter;
private globalAdapter adpt = ((globalAdapter)getApplicationContext());
private String ServicePath = adpt.getServicePath();
private String ServiceName = adpt.getServiceName();
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.loading);
 if(isOnline())
    new AsyncLoad().execute();
 else

Don't initialize it before OnCreate() , you can't get Context with there, do it in onCreate() .

private globalAdapter adpt;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.loading);
    adpt  = ((globalAdapter)getApplicationContext());
    ...
}

1. Dont initialize the below before the onCreate, let the views get their ids first

private globalAdapter adpt = ((globalAdapter)getApplicationContext());
private String ServicePath = adpt.getServicePath();
private String ServiceName = adpt.getServiceName();

2. Just Declare them....

private globalAdapter adpt;
private String ServicePath;  
private String ServiceName;

3. Its because when the Activity is not formed, how can you get the Context to that activity, cause you are using the getApplicationContext() to get the current Activity context.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM