0

アプリケーションを拡張するために使用しているクラスがあります。これはそのコードです:

package com.example.myapp

public class MainApplication extends Application {
    public ArrayList<Level> remoteLevels = new ArrayList<Level>();
    public ArrayList<Level> localLevels = new ArrayList<Level>();
    public TCMSQLiteHelper sqliteHelper = new TCMSQLiteHelper(this.getApplicationContext());

    @Override
    public void onCreate() {
        super.onCreate();
        this.loadRemoteLevels();
        localLevels = sqliteHelper.getAllLevels();
        if(localLevels.size()>0){
            Log.d("DEBUG","Explore Data Found");
        } else {
            Log.d("DEBUG","No Explore Data Found");
        }
    }
}

マニフェストには次のエントリがあります

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/TCMTheme"
    android:name="MainApplication">

エラーが発生していますjava.lang.RuntimeException: Unable to instantiate application com.example.myapp.MainApplication: java.lang.NullPointerException

私は何が欠けていますか?

4

1 に答える 1

1

コードからTCMSQLiteHelper、クラスを開始する前に定義します

public TCMSQLiteHelper sqliteHelper = new TCMSQLiteHelper(this.getApplicationContext());
                                                           ^^^

この方法を試してください:

public TCMSQLiteHelper sqliteHelper;

...

 @Override
public void onCreate() {

...
sqliteHelper = new TCMSQLiteHelper(this.getApplicationContext());
于 2013-10-17T18:51:28.773 に答える