2012-07-19 12 views
5

Al ejecutar el proyecto en el emulador de Android, enfrento la excepción como java.lang.NullPointerException en getApplicationContext. Por favor, ayúdenme a resolver este problema.Java.lang.NullPointerException en getapplicationContext() al iniciar el adaptador

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 
+0

Puede simplemente usar "this" en lugar de llamar a getApplicationContext() en su actividad de carga – pixelscreen

+0

no publicar todo. ¡Simplemente publique el bloque de código donde está obteniendo el error! –

+0

Y también hacer esas inicializaciones en onCreate() y no antes de eso! – pixelscreen

Respuesta

11

No lo inicialice antes de OnCreate(), no puede obtener el contexto allí, hágalo en onCreate().

private globalAdapter adpt; 

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

¿Alguna razón para un voto negativo? –

+0

Gracias Lalit. Pero después de inicializarlo en el método OnCreate, muestra el mismo error. – Mahavir

+0

eliminaste 'private globalAdapter adpt = ((globalAdapter) getApplicationContext());' como global? –

2

1. Dont inicializar el siguiente antes de la onCreate, dejar que los puntos de vista consiguen sus primeros identificadores de

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

2. Sólo declararlos ....

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

3. Es porque cuando la actividad no se forma, ¿cómo se puede obtener la Con envíe un mensaje de texto a esa actividad, porque está utilizando el getApplicationContext() para obtener el contexto de la actividad actual.

+0

Gracias Xitij, pero incluso después de inicializarlo en el método Oncreate() muestra el mismo error .. – Mahavir

Cuestiones relacionadas