java - java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法 (java.lang.String)'
问题描述
嗨,我的代码中出现以下错误可能是我遗漏了一些东西,我有另一个具有相同类型的代码并且工作正常:
java.lang.NullPointerException: 尝试调用虚拟方法'long app.akexorcist.bluetoothspp.DatabaseHelper.insertData(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang .String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)' 在一个空对象上参考
以下是一些代码:
谢谢
public void postDataToSQLite() { SharedPreferences sharedpreferences = getSharedPreferences(LoginActivity.MyPREFERENCES, Context.MODE_PRIVATE); SharedPreferences.Editor 编辑器 = sharedpreferences.edit();
SharedPreferences vehiclesharedpreferences = getSharedPreferences(VehicleEntryActivity.MyVehicle, Context.MODE_PRIVATE);
SharedPreferences.Editor vehicle_editor = sharedpreferences.edit();
String name = txtName.getText().toString();
String surname = txtSurname.getText().toString();
String idno = txtIDNo.getText().toString();
String birth = txtDateBirth.getText().toString();
String username = sharedpreferences.getString(Name, "");
editor.apply();
String make = vehiclesharedpreferences.getString(Make, "");
String colour = vehiclesharedpreferences.getString(Colour, "");
String expiry = vehiclesharedpreferences.getString(Expiry, "");
String regno = vehiclesharedpreferences.getString(RegNo, "");
String date = vehiclesharedpreferences.getString(DateTime, "");
String loc = vehiclesharedpreferences.getString(GPS, "");
vehicle_editor.apply();
String event = "Entry";
if(name.isEmpty() || surname.isEmpty() || idno.isEmpty() || birth.isEmpty())
{
Toast.makeText(this, "Please scan drivers licence", Toast.LENGTH_SHORT).show();
}
else
{
long id = helper.insertData(make,colour,expiry,regno,date,loc,name,surname,idno,birth,event,username);
Intent intent = null;
if(id<=0)
{
Message.message(getApplicationContext(),"Failed... Please Check Data");
}
else
{
Message.message(getApplicationContext(),"Insert Successful");
intent = new Intent(getApplicationContext(), Main.class);
startActivity(intent);
}
}
}
数据库助手类:
public long insertData(String make, String colour, String expiry,String regno,String date,String loc,String name,String surname,String idno,Stringbirth,String event,String username) { SQLiteDatabase dbb = myhelper.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(myDbHelper.COLUMN_MAKE, make);
contentValues.put(myDbHelper.COLUMN_COLOUR, colour);
contentValues.put(myDbHelper.COLUMN_EXPIRY_DATE, expiry);
contentValues.put(myDbHelper.COLUMN_REG_NO, regno);
contentValues.put(myDbHelper.COLUMN_DATE, date);
contentValues.put(myDbHelper.COLUMN_LOC, loc);
contentValues.put(myDbHelper.COLUMN_DRIVER_NAME, name);
contentValues.put(myDbHelper.COLUMN_DRIVER_SURNAME, surname);
contentValues.put(myDbHelper.COLUMN_DRIVER_IDNO, idno);
contentValues.put(myDbHelper.COLUMN_DRIVER_BIRTH, birth);
contentValues.put(myDbHelper.COLUMN_EVENT, event);
contentValues.put(myDbHelper.COLUMN_ENTRY_USERNAME, username);
long id = dbb.insert(myDbHelper.TABLE_SCAN, null , contentValues);
dbb.close();
return id;
}
E / AndroidRuntime:致命异常:主进程:app.akexorcist.bluetoothspp,PID:23330 java.lang.NullPointerException:尝试调用虚拟方法'long app.akexorcist.bluetoothspp.DatabaseHelper.insertData(java.lang.String,java。 lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang。 String, java.lang.String, java.lang.String)' 在 app.akexorcist.bluetoothspp.LicenseEntryActivity.postDataToSQLite(LicenseEntryActivity.java:281) 的 null 对象引用上 app.akexorcist.bluetoothspp.LicenseEntryActivity$1.onClick(LicenseEntryActivity .java:81) 在 android.view.View.performClick(View.java:4781) 在 android.view.View$PerformClick.run(View.java:19874) 在 android.os.Handler.handleCallback(Handler.java:739) 在 android.os.Handler.dispatchMessage(Handler.java:95) 在 android.os.Looper.loop(Looper.java:135) 在 android.app.ActivityThread.main(ActivityThread.java:5254) 在java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:902 ) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:697)在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:697) 运行(ZygoteInit.java:902)在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:697) 运行(ZygoteInit.java:902)
解决方案
您的变量“助手”似乎为空或未启用。
你怎么称呼你的助手?
推荐阅读
- c# - LINQ:在子列表中创建条件 Where 子句
- html - 材料设计dataTables列可以直接用css自定义属性设置样式(无框架)
- puppet - 从詹金斯动态发送值到木偶清单
- postgresql - 如何在 postgres 12 中的分区表的复合主键的列部分上添加或模拟唯一性约束?
- java - Java Math.min Math.max 错误
- node.js - Helm Rocket.Chat:/app/bundle/programs/server/node_modules/fibers/future.js 中的错误
- metpy - #metpy - NEXRAD L3 NCR 数据缩放
- apache-spark - java.lang.NumberFormatException:对于输入字符串:使用 Spark 从雪花读取时为“inf”
- sql - 在sql中查找和替换字符串的一部分
- r - 如何使用 R 制作前 3 位堆积条形图?