new AsyncTask<Ticket, Void, List<TPVLine>>() {
@Override
protected List<TPVLine> doInBackground(Ticket... params) {
List<TPVLine> lines;
while (true){
Log.d(TAG, "Waiting for data base response");
try {
lines = params[0].getLines();
Log.d(TAG, "Data base response completed");
break;
}catch (SQLiteException | NullPointerException ex){
ActiveAndroid.clearCache();
Log.d(TAG, "Cleaning cache");
Log.wtf(TAG, ex.toString());
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
return lines;
}
@Override
protected void onPostExecute(List<TPVLine> aVoid) {
super.onPostExecute(aVoid);
linesTPV = new ArrayList<TPVLine>();
if (aVoid != null){
linesTPV = aVoid;
}
linesTPV.addAll(noSavedLines);
mainActivity.getTpvFragment().resetPrice();
notifyDataSetChanged();
if (linesTPV.size() == 0){
mainActivity.getTpvFragment().getListContainer().setVisibility(View.INVISIBLE);
mainActivity.getTpvFragment().getMessageContainer().setVisibility(View.VISIBLE);
}else {
mainActivity.getTpvFragment().getListContainer().setVisibility(View.VISIBLE);
mainActivity.getTpvFragment().getMessageContainer().setVisibility(View.INVISIBLE);
}
notifyDataSetChanged();
}
}.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, mainActivity.getCurrentTicket());
Das sind die Anrufe zuerst in Ticket.javaWarum habe ich eine Nullzeiger-Ausnahme bei Datenbankaufrufen und was kann ich tun, um zu lösen?
public List<TPVLine> getLines() {
return new Select().from(TPVLine.class).where("Ticket = ?", this.getId()).execute();
}
Der zweite in TPVLine.java
istpublic static List<TPVLine> getLines(Ticket ticket){
return new Select().from(TPVLine.class).where("Ticket = ?", ticket.getId()).orderBy("Id ASC").execute();
}
Das Problem verursacht ist, wenn ich TPVLine.class nennen, stelle ich sicher, Zuerst das Ticket! = null. Ich benutze ActiveAndroid, um die Datenbank zu verwalten
Haben Sie die Anleitung gelesen: https://developer.android.com/reference/android/os/AsyncTask.html? Denn wenn ich Ihren Code richtig gelesen habe, ist 'params [0]' offensichtlich 'null' –
Mögliches Duplikat von [Was ist eine Null-Zeiger-Ausnahme und wie behebe ich sie?] (Http://stackoverflow.com/questions/ 218384/what-is-a-null-pointer-exception-and-how-do-i-fix-it) –
Das Problem ist nicht params [0], ich gebe ein Ticket und es ist null. Das Problem ist eine Null-Zeiger-Ausnahme verursacht durch Aufruf der Methode .getClass() auf ein Null-Objekt, und ich verwende nur die .class oder .getClass() in Datenbankaufrufen –