2012-03-15 3 views
0

毎回アクティビティが開始されるときに初期化する必要がないように、このアプリケーションで最高レベルのグローバル変数が必要です。私は自分の物理デバイス上で自分のアプリケーションをテストし、nullPointerExceptionを取得します。しかし、エミュレータでの成功! ログ情報:グローバルクラスのApplicationクラスを使用しているときに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

は、あなたがこの行にIndexActivityからの38を投稿することはできませんLittleRabitAssistants.java –

+0

でライン83でコードを与えます。 Javaの –

+0

はあなたのマニフェストファイル アンドロイドの次 アプリケーションタグのような??アンドロイドマニフェストファイルでアプリケーションクラスを言及している:名=「yourpackgename.Globalは」 –

答えて

0

私はあなたがsuper.onCreate(上呼び出す前に、init()メソッドを呼び出したと思う)...

関連する問題