YouTubeチュートリアルの後、データベースとテーブルを作成するコードを書きました。SQLiteデータベースでアプリケーションがクラッシュする
アプリを読み込んで「Magic Words Button」をクリックすると、アプリがクラッシュしてシャットダウンします。
データベースも作成されていませんが、これはアプリがクラッシュしたためです。
クラッシュする理由はありますか?
マジックワード
public class Magic_Words extends AppCompatActivity {
MyDBHelper myDb;
EditText edittxt_Ring, edittxt_Locate, edittxt_Lock, edittxt_Wipe;
Button btn_Save;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_magic__words);
//myDb = new DataBaseHelper(this);
myDb = new MyDBHelper(this);
edittxt_Ring = (EditText) findViewById(R.id.txt_Ring);
edittxt_Locate = (EditText) findViewById(R.id.txt_Locate);
edittxt_Lock = (EditText) findViewById(R.id.txt_Lock);
edittxt_Wipe = (EditText) findViewById(R.id.txt_Wipe);
Add_Data();
}
public void Add_Data() {
btn_Save.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
boolean isInserted = myDb.insertMagicWords(edittxt_Ring.getText().toString());
if (isInserted == true)
Toast.makeText(Magic_Words.this, "Magic Words Saved", Toast.LENGTH_LONG).show();
else
Toast.makeText(Magic_Words.this, "Error Saveng Your Magic Words.", Toast.LENGTH_LONG).show();
}
}
);
}
}
BDHelper
//public class MyDBHandler extends SQLiteOpenHelper {
public class MyDBHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "TextIt.db";
public static final String TABLE_NAME = "MagicWords";
public static final String ColumnID = "ID";
public static final String ColumnCommand = "Word";
public MyDBHelper(Context context) {
super(context, DATABASE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table " + TABLE_NAME + " (" + ColumnCommand + "(ID INTEGER PRIMARY KEY AUTOINCREMENT," +
ColumnCommand + "TEXT)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS" + TABLE_NAME);
onCreate(db);
}
public boolean insertMagicWords(String txt_Ring) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(ColumnCommand, txt_Ring);
long result = db.insert(TABLE_NAME,null, contentValues);
if (result == -1)
return false;
else
return true;
}
}
スタックトレース(と思う)
04-13 08:56:58.967 17258-17258/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.kieran.textit, PID: 17258
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.kieran.textit/com.kieran.textit.Magic_Words}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
at com.kieran.textit.Magic_Words.Add_Data(Magic_Words.java:37)
at com.kieran.textit.Magic_Words.onCreate(Magic_Words.java:33)
at android.app.Activity.performCreate(Activity.java:6237)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
あなたStacktraceを投稿してくださいか? –
私は正しいことを投稿したと思う –
btn_Saveはnullで、あなたはそれにonclicklistenerを設定しました。 –