활기찬 월요일 입니다.
항상 여기서 많은 도움을 얻어 갑니다. ^^)
아래와 같은 코드에서 두가지 질문이 있습니다.
1. String dbPath = getApplicationContext().getDatabasePath(dbName).getPath(); 을 이용할 경우 DB 파일을 찾을 수 없다는 에러가 발생 합니다.
2. 아래와 같이 rawQuery 사용시 NullPointerException이 발생합니다.
...
SQLiteDatabase mDb;
Cursor mCursor;
String[] info;
...
// phonebook 이라는 DB파일을 불러옴
public String[] getDB(){
//String dbName = "phonebook";
//String dbPath = getApplicationContext().getDatabasePath(dbName).getPath();
String dbPath = "/data/data/com.android.besafe/databases/phonebook";
mDb.openDatabase(dbPath,null,SQLiteDatabase.OPEN_READWRITE); //NullPointerException 발생
for(row=1;row<11;row++){
mCursor = mDb.rawQuery("select name from info where _id='"+row+"'", null);
if (mCursor.getCount() > 0) {
mCursor.moveToFirst();
info[row] = mCursor.toString();
while (mCursor.moveToNext()) {
}
}
}
}
for(row=11;row<21;row++){
mCursor = mDb.rawQuery("select number from info where _id='"+row+"'", null);
mCursor.moveToFirst();
info[row] = mCursor.toString();
}
mDb.close();
return info;
}
...
// getDB 파일을 호출하는 부분
...
startService.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
MySendSMS sms = new MySendSMS();
String[] info=sms.getDB();
}
});
...
12-12 07:22:01.364: E/AndroidRuntime(29512): FATAL EXCEPTION: main
12-12 07:22:01.364: E/AndroidRuntime(29512): java.lang.NullPointerException
12-12 07:22:01.364: E/AndroidRuntime(29512): at android.content.ContextWrapper.getPackageName(ContextWrapper.java:120)
12-12 07:22:01.364: E/AndroidRuntime(29512): at android.app.PendingIntent.getBroadcast(PendingIntent.java:226)
12-12 07:22:01.364: E/AndroidRuntime(29512): at com.android.besafe.MySendSMS.sendSMS(MySendSMS.java:60)
12-12 07:22:01.364: E/AndroidRuntime(29512): at com.android.besafe.BeSafeActivity$2.onClick(BeSafeActivity.java:51)
12-12 07:22:01.364: E/AndroidRuntime(29512): at android.view.View.performClick(View.java:2485)
12-12 07:22:01.364: E/AndroidRuntime(29512): at android.view.View$PerformClick.run(View.java:9080)
12-12 07:22:01.364: E/AndroidRuntime(29512): at android.os.Handler.handleCallback(Handler.java:587)
12-12 07:22:01.364: E/AndroidRuntime(29512): at android.os.Handler.dispatchMessage(Handler.java:92)
12-12 07:22:01.364: E/AndroidRuntime(29512): at android.os.Looper.loop(Looper.java:123)
12-12 07:22:01.364: E/AndroidRuntime(29512): at android.app.ActivityThread.main(ActivityThread.java:3647)
12-12 07:22:01.364: E/AndroidRuntime(29512): at java.lang.reflect.Method.invokeNative(Native Method)
12-12 07:22:01.364: E/AndroidRuntime(29512): at java.lang.reflect.Method.invoke(Method.java:507)
12-12 07:22:01.364: E/AndroidRuntime(29512): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
12-12 07:22:01.364: E/AndroidRuntime(29512): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
12-12 07:22:01.364: E/AndroidRuntime(29512): at dalvik.system.NativeStart.main(Native Method)
왜 이런 현상이 발생하는지 알려주시면 대단히 감사하겠습니다. ^^)




phonebook db 가 대체 어디에 존재하는거죠 ? ㅡㅡa