2012-02-27 6 views
0

을 열 수 없습니다 :내가 펜에 내 SQLite는 DB를 시도하고 SQLite는 데이터베이스

dbHelper = new DataBaseHelper(context); 
public static void open() throws SQLException { 
    try { 
     database = dbHelper.getWritableDatabase(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
     Log.d(Tag.getTag("open()"), "Can't open db"); 
    } 
} 

그러나 NullPointerException을 제공합니다. 다음은 내 DataBaseHelper 클래스입니다.

//declarations and stuff 

public DataBaseHelper(Context context) { 
    super(context, VFS_DATABASE_NAME, null, DATABASE_VERSION); 
    this.context = context; 
} 

@Override 
public void onCreate(SQLiteDatabase db) { 
    // TODO Auto-generated method stub 
    Toast.makeText(context, "Creating DataBase for first time...", 2000).show(); 
    db.execSQL(DATABASE_CREATE); 

} 

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    Log.w(DataBaseHelper.class.getName(), 
      "Upgrading database from version " + oldVersion + " to " 
        + newVersion + ", which will destroy all old data"); 
    db.execSQL("DROP TABLE IF EXISTS" + VFS_DATABASE_TABLE); 
    onCreate(db); 

} 

내가 잘못하고있는 것을 알아낼 수 없습니다. 이 오류가 발생하는 이유는 무엇입니까?

스택 추적 :

02-27 23:16:07.698: W/System.err(4685): java.lang.NullPointerException 
02-27 23:16:07.698: W/System.err(4685):  at com.manager.boot.r1223.VSDataSource.open(VSDataSource.java:34) 
02-27 23:16:07.698: W/System.err(4685):  at com.manager.boot.r1223.VSDataSource.ScanVirtualSystems(VSDataSource.java:52) 
02-27 23:16:07.706: W/System.err(4685):  at com.manager.boot.r1223.OSListActivity.onCreate(OSListActivity.java:49) 
02-27 23:16:07.706: W/System.err(4685):  at android.app.Activity.performCreate(Activity.java:4465) 
02-27 23:16:07.706: W/System.err(4685):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 
02-27 23:16:07.706: W/System.err(4685):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920) 
02-27 23:16:07.706: W/System.err(4685):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981) 
02-27 23:16:07.706: W/System.err(4685):  at android.app.ActivityThread.access$600(ActivityThread.java:123) 
02-27 23:16:07.706: W/System.err(4685):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147) 
02-27 23:16:07.706: W/System.err(4685):  at android.os.Handler.dispatchMessage(Handler.java:99) 
02-27 23:16:07.706: W/System.err(4685):  at android.os.Looper.loop(Looper.java:137) 
02-27 23:16:07.706: W/System.err(4685):  at android.app.ActivityThread.main(ActivityThread.java:4424) 
02-27 23:16:07.706: W/System.err(4685):  at java.lang.reflect.Method.invokeNative(Native Method) 
02-27 23:16:07.706: W/System.err(4685):  at java.lang.reflect.Method.invoke(Method.java:511) 
02-27 23:16:07.706: W/System.err(4685):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
02-27 23:16:07.706: W/System.err(4685):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
02-27 23:16:07.706: W/System.err(4685):  at dalvik.system.NativeStart.main(Native Method) 
+0

당신이 – Houcine

+0

포스트는 Logcat''에서 얻을 예외를 가지고 예외의 스택 트레이스를 추가 할 수 있습니다. – Luksprog

+0

dbhelper는 정적입니까? 그렇지 않다면 당신 문제입니다. – AedonEtLIRA

답변

2

나는 문제가 정적으로 생각합니다. 그것없이 시도하십시오.

내 예 :

public class MyActivity extends ListActivity { 

    private DatabaseHandler db; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.list); 

    db = new DatabaseHandler(this); 
    ... 
} 
+0

제거하면 활동 클래스에서 호출 할 수 없습니다. 따라서 테스트 할 수 없습니다. –

+0

당신의 활동 또한 정적입니까? – murko

+0

정적이지만 여전히 nullpointer를 가져 왔습니다. http://pastebin.com/SeyN8Vsk –