2012-07-19 14 views
5

Podczas uruchamiania projektu na emulatorze Androida napotykam wyjątek jako java.lang.NullPointerException na getApplicationContext. Proszę, pomóż mi rozwiązać ten problem.Java.lang.NullPointerException na getapplicationContext() podczas inicjowania adaptera

błąd

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

można po prostu użyć „to” zamiast dzwonić getApplicationContext() w swojej działalności załadunku – pixelscreen

+0

nie zakładać everything.just pisać blok kodu, w którym jego błąd podczas pobierania !!! –

+0

A także wykonaj te inicjalizacje w onCreate(), a nie wcześniej! – pixelscreen

Odpowiedz

11

Nie zainicjuj go przed OnCreate(), nie można uzyskać tam kontekstu, zrób to w onCreate().

private globalAdapter adpt; 

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

Jakieś powody oddawania głosu? –

+0

Dzięki Lalit. Ale po inicjalizacji w metodzie OnCreate pokazuje ten sam błąd. – Mahavir

+0

czy usunąłeś 'private globalAdapter adpt = ((globalAdapter) getApplicationContext());' as global? –

2

1. Dont zainicjować poniżej przed onCreate, niech widoki uzyskać ich identyfikatory pierwszych

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

2. Wystarczy nich deklaruje ....

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

3. To dlatego, że kiedy nie powstaje Aktywność, jak uzyskać Con tekst do tej czynności, ponieważ używasz getApplicationContext(), aby uzyskać aktualny kontekst działania.

+0

Dzięki Xitij, Ale nawet po zainicjowaniu go w Oncreate() metoda pokazuje ten sam błąd .. – Mahavir

Powiązane problemy