数据库在Android Studio中显示空指针

时间:2018-11-19 00:03:29

标签: java android sqlite android-studio

我在android studio中工作了很长时间,但是在实现数据库方面一直遇到问题。我正在尝试与此相同,但得到可怕的空指针异常。据我所知,他们已经摆脱了ddms,所以我无法查看数据库,是否有人知道我做了一些在线挖掘的另一种方式,但是我丢失了一个模块或者答案已经过时了

package com.example.wasi.familyschedualer;

import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;


public class DatabaseHelper extends SQLiteOpenHelper {
    private static final String TAG ="DatabaseHelper";
    private static final String TABLE_NAME ="Wasi";
    private static final String DATE="date";
    private static final String Start="startTime";
    private static final String End="endTime";
    private static final String Location="Location";
    private static final String eventName="EventName";

    public DatabaseHelper(Context x){
        super(x,TABLE_NAME,null,5);
    }
    @Override
    public void onCreate(SQLiteDatabase sqldb){
        String MakrTable="CREATE TABLE "+ TABLE_NAME+" (\n" +
                "    date varchar(255),\n" +
                "    startTime varchar(255),\n" +
                "    endTime varchar(255),\n"+
                "    EventName varchar(255),\n"+
                "    Location varchar(255)\n"+
                " );";
        sqldb.execSQL(MakrTable);
    }
    @Override
    public void onUpgrade(SQLiteDatabase sqldb, int i, int i1){
        sqldb.execSQL("DROP TABLE IF EXISTS "+TABLE_NAME);
        onCreate(sqldb);
    }

    public boolean addData(String TableName,String location, String eventname,String date, String start, String end){
        SQLiteDatabase db =this.getWritableDatabase();
        ContentValues contentValues= new ContentValues();
        contentValues.put(DATE, date);
        contentValues.put(Start, start);
        contentValues.put(End, end);
        contentValues.put(eventName, eventname);
        contentValues.put(Location, location);

        Log.d(TAG, "addData: Adding "+ date+" "+start+" "+end +" to "+ TABLE_NAME);
        long result =db.insert(TABLE_NAME,null, contentValues);
        if(result==-1)return false;
        else return true;
    }

}

这是错误

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.wasi.familyschedualer, PID: 18222
    java.lang.IllegalStateException: Could not execute method for android:onClick
        at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:390)
        at android.view.View.performClick(View.java:6294)
        at android.view.View$PerformClick.run(View.java:24770)
        at android.os.Handler.handleCallback(Handler.java:790)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6494)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
     Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Method.invoke(Native Method)
        at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:385)
        at android.view.View.performClick(View.java:6294) 
        at android.view.View$PerformClick.run(View.java:24770) 
        at android.os.Handler.handleCallback(Handler.java:790) 
        at android.os.Handler.dispatchMessage(Handler.java:99) 
        at android.os.Looper.loop(Looper.java:164) 
        at android.app.ActivityThread.main(ActivityThread.java:6494) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) 
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean com.example.wasi.familyschedualer.DatabaseHelper.addData(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)' on a null object reference
        at com.example.wasi.familyschedualer.addevent.AddData(addevent.java:131)
        at java.lang.reflect.Method.invoke(Native Method) 
        at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:385) 
        at android.view.View.performClick(View.java:6294) 
        at android.view.View$PerformClick.run(View.java:24770) 
        at android.os.Handler.handleCallback(Handler.java:790) 
        at android.os.Handler.dispatchMessage(Handler.java:99) 
        at android.os.Looper.loop(Looper.java:164) 
        at android.app.ActivityThread.main(ActivityThread.java:6494) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) 

0 个答案:

没有答案