DB생성하는 매서드를 mainActivity 클래스 안에 넣으면 잘 작동하는데
이렇게 분리해서 생성하려면 에러가나네요..
이유가 뭘까요???
일단 mainActivity입니다.
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DB_LocalDatabase db= new DB_LocalDatabase();
db.create_bookMark_db();
다음은 DB class입니다
public class DB_LocalDatabase extends AppCompatActivity{
SQLiteDatabase db;
//DB생성 또는 열기
public void create_bookMark_db(){
final String db_name = "_bible";
try {
db = openOrCreateDatabase(db_name, Activity.MODE_PRIVATE, null);
Log.d("메시지","디비생성 완료");
}catch(Exception e){
e.printStackTrace();
Log.d("메시지","fail to create or open database");
}
}
0-12 02:25:23.351 12699-12732/com.example.pc. D/NetworkSecurityConfig: No Network Security Config specified, using platform default
10-12 02:25:23.384 12699-12699/com.example.pc. W/System.err: java.lang.NullPointerException: Attempt to invoke virtual method 'android.database.sqlite.SQLiteDatabase android.content.Context.openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase$CursorFactory)' on a null object reference
10-12 02:25:23.384 12699-12699/com.example.pc. W/System.err: at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:283)
10-12 02:25:23.384 12699-12699/com.example.pc. W/System.err: at com.example.pc..DB_LocalDatabase.create_bookMark_db(DB_LocalDatabase.java:30)
10-12 02:25:23.384 12699-12699/com.example.pc. W/System.err: at com.example.pc..MainActivity.onCreate(MainActivity.java:121)
10-12 02:25:23.384 12699-12699/com.example.pc. W/System.err: at android.app.Activity.performCreate(Activity.java:6664)
10-12 02:25:23.384 12699-12699/com.example.pc. W/System.err: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
10-12 02:25:23.384 12699-12699/com.example.pc. W/System.err: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599)
10-12 02:25:23.384 12699-12699/com.example.pc. W/System.err: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
10-12 02:25:23.384 12699-12699/com.example.pc. W/System.err: at android.app.ActivityThread.-wrap12(ActivityThread.java)
10-12 02:25:23.384 12699-12699/com.example.pc. W/System.err: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
10-12 02:25:23.384 12699-12699/com.example.pc. W/System.err: at android.os.Handler.dispatchMessage(Handler.java:102)
10-12 02:25:23.384 12699-12699/com.example.pc. W/System.err: at android.os.Looper.loop(Looper.java:154)
10-12 02:25:23.384 12699-12699/com.example.pc. W/System.err: at android.app.ActivityThread.main(ActivityThread.java:6077)
10-12 02:25:23.384 12699-12699/com.example.pc. W/System.err: at java.lang.reflect.Method.invoke(Native Method)
10-12 02:25:23.384 12699-12699/com.example.pc. W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
10-12 02:25:23.384 12699-12699/com.example.pc. W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
10-12 02:25:23.384 12699-12699/com.example.pc. D/메시지: fail to create or open database