Вставка данных в таблице дает ошибку в android

116
14

Я извлекаю некоторые данные из разных представлений, а затем вставляю данные в таблицу. Но всякий раз, когда я нажимаю кнопку вставки, приложение выходит из строя и говорит: "Приложение перестало отвечать". Я потратил на это 2 часа, и я полностью застрял здесь. Это мое первое приложение, использующее Sqlite в android.

У меня около 10 классов, и разные переменные поступают из разных классов, поэтому не могут публиковать полный Java-код. Вот код java, вызывающий проблему, logcat показывает ошибку в выражении execSQL в if.

insTabVal - это Extra, который поставляется с Intent, и он сообщает, в какую таблицу помещать данные, MainActivity также не является нулевым, а db - объектом базы данных SQLite, который также открыт. Все переменные Val в запросе SQL являются значениями, которые должны быть вставлены в таблицу, и поступают из разных представлений, а также не являются нулевыми.

 btnInsert.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getValues();
if(b.getString("insTableVal").equals("Donor")){
MainActivity.db.execSQL("INSERT INTO Donor VALUES("+IdVal+","+NameVal+","+AgeVal+","+GenderVal+","+BGVal+");");
}
else if(b.getString("insTableVal").equals("Recipient")){
MainActivity.db.execSQL("INSERT INTO Recipient VALUES("+IdVal+","+NameVal+","+AgeVal+","+GenderVal+","+BGVal+");");
}
}
});

Это логарифм

12-31 06:50:00.038 13562-13562/com.example.bilalrafique.bloodbankmanagementsystem E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.bilalrafique.bloodbankmanagementsystem, PID: 13562
java.lang.NullPointerException
at com.example.bilalrafique.bloodbankmanagementsystem.DnRInsertion$1.onClick(DnRInsertion.java:34)
at android.view.View.performClick(View.java:4466)
at android.view.View$PerformClick.run(View.java:18537)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5102)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
at dalvik.system.NativeStart.main(Native Method)

Где происходит Исключение Null указателя. Я не могу понять.

PS Что такое трассировка стека, и как я могу использовать ее для отладки ошибок моего приложения? Я также проверил этот вопрос, но это объясняет, как искать ошибку через трассировку стека. Я уже знаю, что ошибка указана в строке № 34, и это исключение из null-указателя. Я хочу знать, как может оператор Insert вызывать исключение нулевого указателя, даже если все переменные, входящие в него, не равны нулю.

Заранее спасибо.

спросил(а) 2015-12-31T04:54:00+03:00 4 года, 10 месяцев назад
0
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема