我在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)