2012-07-19 5 views
5

Beim Ausführen des Projekts auf Android-Emulator, stelle ich die Ausnahme als java.lang.NullPointerException at getApplicationContext. Bitte helfen Sie mir, dieses Problem zu beheben.Java.lang.NullPointerException bei getapplicationContext() beim Initiieren von Adapter

Fehler

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

Sie können einfach "this" verwenden, anstatt getApplicationContext() in Ihrer Ladeaktivität aufzurufen. – pixelscreen

+0

nicht alles posten. Geben Sie nur den Block des Codes, wo es Fehler bekommen !!! –

+0

Und auch diese Initialisierungen in onCreate() und nicht davor! – pixelscreen

Antwort

11

Initialisieren Sie es nicht vor OnCreate(), Sie können nicht Context mit dort, tun Sie es in onCreate().

private globalAdapter adpt; 

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

Irgendein Grund für eine Abstimmung unten? –

+0

Danke Lalit. Aber nach der Initialisierung in der OnCreate-Methode zeigt es denselben Fehler. – Mahavir

+0

haben Sie 'private globalAdapter adpt = ((globalAdapter) getApplicationContext());' als global entfernt? –

2

1. Dont die unten vor dem onCreate initialisieren, lassen Sie die Ansichten ihre IDs erhalten erste

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

2. sie einfach erklären ....

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

3. Es ist, weil, wenn die Aktivität nicht gebildet wird, wie können Sie die Con bekommen Text zu dieser Aktivität, weil Sie die getApplicationContext() verwenden, um den aktuellen Aktivitätskontext abzurufen.

+0

Dank Xitij, aber selbst nach der Initialisierung in Oncreate() -Methode zeigt es den gleichen Fehler .. – Mahavir

Verwandte Themen