Probleme bei Neuanlage eines Datensatzes in SQlite

  • Antworten:6
  • OffenNicht stickyNicht beantwortet
  • Forum-Beiträge: 213

21.02.2018, 11:36:46 via Website

Da ich auch bei einem anderen Projekt entsprechende Probleme hatte, habe ich nun ein ganz minimiertes Projekt erstellt, um dem Fehler auf die Spur zu kommen.

Angemäkelt wird eine NullPointerException.

Die Datenbank mit der Tabelle scheint aber zuvor erfolgreich angelegt worden zu sein.

Hier erst mal die MainActivity:

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {
public static final String LOG_TAG = MainActivity.class.getSimpleName();
private BuyDataSource dataSource;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    dataSource = new BuyDataSource(this);



    dataSource.createBuy();

}

}

Und hier die createBuy-Methode:

public void createBuy() {
ContentValues values = new ContentValues();
values.put(DbOpenHelper.COLUMN_CONTENT, "Eier");
values.put(DbOpenHelper.COLUMN_STATUS, 1);

    long insertId = database.insert(dbHelper.TABLE_HSL, null, values);

}
Diskutiere mit!
  • Forum-Beiträge: 213

21.02.2018, 11:41:10 via Website

Sorry, sehe schon, dass ich wohl noch einige Methoden in die DataSource-Klasse einbinden muss.

Denkfehler!

Muss ja erst mal eine WriteableDatabase etc. erzeugen.

Hilfreich?
Diskutiere mit!
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.168

21.02.2018, 11:41:32 via App

Hallo Frank,
wo ist die NPE (Zeile, Error log?)
sonst können wir nicht helfen...

Zudem woher nimmst du an, dass die Datenbank Tabelle passend angelegt wird? Hast du das mit einem SQLite Browser gecheckt?

Edit richtig, die DB wird nicht angelegt etc...

— geändert am 21.02.2018, 11:42:14

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 2.243

21.02.2018, 11:46:24 via Website

Ein Tipp, falls du dir das ganze Gehampel mit SQLite erleichtern willst.
Cupboard ist recht cool und sehr einfach einzusetzen. Damit kannst du direkt Objekte in Datenbanken schreiben und auslesen.

https://bitbucket.org/littlerobots/cupboard

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 213

21.02.2018, 12:29:05 via Website

Hallo Frank, wo ist die NPE (Zeile, Error log?) sonst können wir
nicht helfen...

Zudem woher nimmst du an, dass die Datenbank Tabelle passend angelegt
wird? Hast du das mit einem SQLite Browser gecheckt?

Edit richtig, die DB wird nicht angelegt etc...

Danke für die schnelle Antwort. Der Fehler liegt daran, dass ich wohl noch einigen Code vergessen habe, wie ich im Beitrag danach geschrieben habe. Bin gerade am Überarbeiten und werde mich danach noch mal melden.

Habe mir den Browser for SQlite oder so ähnlich zugelegt, bin aber noch nicht viel damit unterwegs. Ein Problem scheint zu sein, dass einige Sachen mit diesen SQlite-Tools nur gehen, wenn ich mit einem Emulator arbeite. Das habe ich aber sein gelassen aufgrund des miesen Tempos. Ich teste jetzt direkt mit dem Gerät.

Ich arbeite mit Logs und Toasts und schließe aus denen, was geklappt oder nicht geklappt hat.

Nachher werde ich mal ne Abfrage machen und sehen, ob die Daten wirklich gespeichert wurden. Soweit bin ich eben schon gekommen ohne Fehlermeldung. OnResume und OnPause hatte ich zB auch noch eingefügt. War einfach zuviel abgespeckt ;-).

Aber diese Fehler sind durchaus lehrreich.

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 213

21.02.2018, 12:31:09 via Website

Ein Tipp, falls du dir das ganze Gehampel mit SQLite erleichtern
willst. Cupboard ist recht cool und sehr einfach einzusetzen. Damit
kannst du direkt Objekte in Datenbanken schreiben und auslesen.

Hört sich toll an. Muss ich wohl mal ausprobieren. Danke!

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 213

22.02.2018, 10:24:24 via Website

Zwischenbericht:

Das Speichern geht jetzt :-). Konnte die Daten über das Log erfolgreich einsehen.

Werde mich nun allmählich wieder von der abgespeckten Version zur gewünschten (vorläufigen) Endversion "hocharbeiten" :-).

Hilfreich?
Diskutiere mit!

Empfohlene Artikel