2017-05-24 1 views
-1

Ich versuche nur, eine Datenbank mit einem Tutorial zu erstellen und es stürzt auf mich und hoffte, dass jemand mir eine Richtung geben könnte, was los ist.Android SQLite Beispiel App stoppt unerwartet

MainActivity.java

package com.example.dwalker.btv2; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 

public class MainActivity extends AppCompatActivity { 



    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     DatabaseHelper myDB = new DatabaseHelper(this); 
    } 
} 

DatabaseHelper.java

package com.example.dwalker.btv2; 

import android.content.Context; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 

/** 
* Created by DWalker on 5/24/2017. 
*/ 

public class DatabaseHelper extends SQLiteOpenHelper { 
    public static final int DATABASE_VERSION = 1; 
    public static final String DATABASE_NAME = "events.db"; 
    public static final String TABLE_NAME = "event_table"; 
    public static final String COL_1 = "ID"; 
    public static final String COL_2 = "EVENT"; 
    public static final String COL_3 = "EVENTDATE"; 
    public static final String COL_4 = "EVENTTIME"; 

    public DatabaseHelper(Context context) { 
     super(context, DATABASE_NAME, null, DATABASE_VERSION); 
     SQLiteDatabase db = this.getWritableDatabase(); 
    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     db.execSQL("CREATE TABLE event_table (ID INTEGER PRIMARY KEY AUTOINCREMENT, EVENT TEXT, EVENTDATE TEXT, EVENTTIME TEXT"); 

    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME); 
     onCreate(db); 

    } 
} 

Wenn ich die App auf dem Emulator laufen seine nur mir unerwartet in gestoppt zu erzählen. Alles, was ich versuche zu tun, ist die DB-Datei zu erstellen, damit ich überprüfen kann, ob es korrekt ausgeführt wird.

Dank

DW

+2

Verwenden Sie LogCat, um die Java-Stack-Ablaufverfolgung, die Ihrem Absturz zugeordnet ist, zu untersuchen: https://StackOverflow.com/questions/23353173/universe-myapp-has-stopped-how-can-i-solve-this. Höchstwahrscheinlich liegt Ihr Problem darin, dass Sie 'SQLiteDatabase db = this.getWritableDatabase();' im Konstruktor Ihrer 'SQLiteOpenHelper'-Unterklasse haben. – CommonsWare

+0

Zuerst ändern Sie das ID-Feld zu _ID es wird einfacher sein, die eingebauten Sachen zu bekommen, um die Daten zu laden. – danny117

Antwort

0

Ihre Abfrage fehlschlägt, werden Sie am Ende eine Klammer fehlt (Ich habe auch ein Semikolon, aber ich bin nicht sicher, ob dies erforderlich ist):

db.execSQL("CREATE TABLE event_table (ID INTEGER PRIMARY KEY AUTOINCREMENT, EVENT TEXT, EVENTDATE TEXT, EVENTTIME TEXT);"); 

Dies führt dazu, dass die onCreate-Funktion fehlschlägt, was wiederum zum Absturz der Anwendung führt.

+0

Danke für den Fang! –