2012-03-15 25 views
0

我希望全局變量在此應用程序中具有最高級別,因此無需在每次活動啓動時進行初始化。我在我的物理設備上測試我的應用程序,並得到nullPointerException。但在模擬器的成功! 日誌信息:使用應用程序類時獲取NullPointerException

03-15 15:36:54.851: E/AndroidRuntime(21550): 
java.lang.RuntimeException: Unable to start activity ComponentInfo{panda.com.db/panda.com.db.IndexActivity}: java.lang.NullPointerException 
03-15 15:36:54.851: E/AndroidRuntime(21550): 
at panda.com.db.LittleRabitAssistants.<init>(LittleRabitAssistants.java:83) 
03-15 15:36:54.851: E/AndroidRuntime(21550): 
at panda.com.db.Global.Init(Global.java:23) 
03-15 15:36:54.851: E/AndroidRuntime(21550): 
at panda.com.db.IndexActivity.onCreate(IndexActivity.java:38) 

全球類代碼:

public class Global extends Application{ 
    private static LittleRabitAssistants assistants; 
    .. 
    .. 
    public void Init(){ 
     this.assistantsDB = new DBAdapter(this,null,null); 
     this.assistants = new LittleRabitAssistants(this); 
     this.initLocaleFromDB(); 
    } 
} 

public LittleRabitAssistants(Global globalVariable){ 
     this.globalVariable=globalVariable; 
      .. 
     if(globalVariable.getLocaleLanguage().equals("zh-CN")){ 
      .. 
     }else{ 
      .. 
     } 
    } 

public class IndexActivity extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.test); 
     //get global application 
     Global globalApplication = (Global)this.getApplication(); 
     //initialize the Assistants 
     globalApplication.Init(); 
     pa = globalApplication.getAsisstents(); 
} 

不過,最重要的是,這個應用程序成功模擬器中運行!

+0

給在線路83 LittleRabitAssistants.java – 2012-03-15 07:56:50

+0

的代碼,你可以張貼這條線沒有從IndexActivity 38。 java的 – 2012-03-15 07:57:37

+0

有你在Android清單文件中提及您的應用程序類?像你的清單文件 的Android以下 應用標籤:名字=「yourpackgename.Global」 – 2012-03-15 08:01:57

回答

0

我想你已經叫init()方法調用的super.onCreate()之前...

相關問題