sqlite 데이터베이스를 만들려고하는데 여기에 제 코드가 있습니다. 내 앱을 실행하려고 할 때마다 오류가 많이 발생합니다. 에뮬레이터 문제라고 생각하지만 여기에 내 코드와 오류가 있습니다. 도움이 필요합니다. 나는 무엇을해야할지 모른다. 여기SQLiteDatabase를 만들려고하는 동안 NullPointerException이 발생했습니다.
01-17 14:52:39.890: D/AndroidRuntime(1699): Shutting down VM
01-17 14:52:39.890: W/dalvikvm(1699): threadid=1: thread exiting with uncaught exception (group=0xb3abdb90)
01-17 14:52:39.910: E/AndroidRuntime(1699): FATAL EXCEPTION: main
01-17 14:52:39.910: E/AndroidRuntime(1699): Process: com.example.net.saeed.sqlitedb, PID: 1699
01-17 14:52:39.910: E/AndroidRuntime(1699): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.net.saeed.sqlitedb/com.example.net.saeed.sqlitedb.MainActivity}: java.lang.NullPointerException
01-17 14:52:39.910: E/AndroidRuntime(1699): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2176)
01-17 14:52:39.910: E/AndroidRuntime(1699): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2226)
01-17 14:52:39.910: E/AndroidRuntime(1699): at android.app.ActivityThread.access$700(ActivityThread.java:135)
01-17 14:52:39.910: E/AndroidRuntime(1699): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1397)
01-17 14:52:39.910: E/AndroidRuntime(1699): at android.os.Handler.dispatchMessage(Handler.java:102)
01-17 14:52:39.910: E/AndroidRuntime(1699): at android.os.Looper.loop(Looper.java:137)
01-17 14:52:39.910: E/AndroidRuntime(1699): at android.app.ActivityThread.main(ActivityThread.java:4998)
01-17 14:52:39.910: E/AndroidRuntime(1699): at java.lang.reflect.Method.invokeNative(Native Method)
01-17 14:52:39.910: E/AndroidRuntime(1699): at java.lang.reflect.Method.invoke(Method.java:515)
01-17 14:52:39.910: E/AndroidRuntime(1699): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
01-17 14:52:39.910: E/AndroidRuntime(1699): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)
01-17 14:52:39.910: E/AndroidRuntime(1699): at dalvik.system.NativeStart.main(Native Method)
01-17 14:52:39.910: E/AndroidRuntime(1699): Caused by: java.lang.NullPointerException
01-17 14:52:39.910: E/AndroidRuntime(1699): at com.example.net.saeed.sqlitedb.MainActivity.onCreate(MainActivity.java:15)
01-17 14:52:39.910: E/AndroidRuntime(1699): at android.app.Activity.performCreate(Activity.java:5243)
01-17 14:52:39.910: E/AndroidRuntime(1699): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
01-17 14:52:39.910: E/AndroidRuntime(1699): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2140)
01-17 14:52:39.910: E/AndroidRuntime(1699): ... 11 more
01-17 14:52:45.450: I/Process(1699): Sending signal. PID: 1699 SIG: 9
괜찮 예를 들어
import android.content.Context;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class saeedHelperBD extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "saeedDataBase";
private static final String TABLE_NAME = "saeedTable";
private static final int DATABASE_VERSION = 1;
private static final String UID = "_id";
private static final String NAME = "Name";
private static final String ADRESS = "Adress";
private static final String CREAT_TABLE ="CREATE TABLE " + TABLE_NAME + " (" + UID + " INTEGER PRIMARY KEY AUTOINCREMENT , " + NAME + " VARCHAR(225));";
private static final String DROP_TABLE = "DROP TABLE IF EXISTS " + TABLE_NAME;
private Context context;
public saeedHelperBD(Context con) {
super(con, DATABASE_NAME, null , DATABASE_VERSION);
this.context=con;
Message.message(context, "constructor called");
}
@Override
public void onCreate(SQLiteDatabase db) {
try {
Message.message(context, "onCreate was called");
db.execSQL(CREAT_TABLE);
} catch (SQLException e) {
Message.message(context, ""+e);
}
}
@Override
public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {
db.execSQL(DROP_TABLE);
try {
Message.message(context, "onUpgrade was called");
onCreate(db);
} catch (SQLException e) {
Message.message(context, ""+e);
}
}
main()
}
saeedHelperBD firstBD;
SQLiteDatabase sqlBD = firstBD.
}`
는 mainactivity
입니다package com.example.net.saeed.sqlitedb;
import android.os.Bundle;
import android.app.Activity;
import android.database.sqlite.SQLiteDatabase;
import android.view.Menu;
public class MainActivity extends Activity {
saeedHelperBD firstBD;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SQLiteDatabase sqlBD = firstBD.getWritableDatabase();
}
문제는 'MainActivity.java'의 15 행에 있습니다. 잘못된 코드를 표시하고 있습니다. –
MainActivity에는 15 행의 null 포인터 예외가 있습니다. 또한 질문을 널 포인터 예외 또는 이와 유사한 것으로 변경해야합니다. –
고마워요, 네, 바로 문제는 MainActivity의 15 행에 있습니다.하지만 내가해야 할 일은 여기에 있습니다. MainActivity – NoXSaeeD