Kezdőoldal » Számítástechnika » Programozás » Android alkalmazás nem indul.....

Android alkalmazás nem indul... Mi lehet a probléma?

Figyelt kérdés

Android Studio-ban kell csinálnom egy egyszerű alkalmazást, amihez kell egy adatbázis (SQLite). De ezzel a hibával leáll az alkalmazás miután elindítom.


java.lang.IllegalStateException: Couldn't read row 0, col -1 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it.


DAO Class:


@Override

public List<WishItem> getAllWishItems() {

SQLiteDatabase db = helper.getReadableDatabase();

Cursor cursor = db.rawQuery("SELECT * FROM wishitem", null);

List<WishItem> items = new ArrayList<>();


cursor.moveToFirst();

while (!cursor.isAfterLast()) {

int id = cursor.getInt(cursor.getColumnIndex("_id"));

String name = cursor.getString(cursor.getColumnIndex("name"));

int year = cursor.getInt(cursor.getColumnIndex("year"));

int month = cursor.getInt(cursor.getColumnIndex("month"));

int day = cursor.getInt(cursor.getColumnIndex("day"));

int importance = cursor.getInt(cursor.getColumnIndex("importance"));


WishItem wi = new WishItem(id, name, year, month, day, importance);

items.add(wi);

cursor.moveToNext();

}

cursor.close();

db.close();


return items;

}


SQLiteOpenHelper Class:


@Override

public void onCreate(SQLiteDatabase db) {

db.execSQL("CREATE TABLE wishitem (_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, year INTEGER, month INTEGER, day INTEGER, importance INTEGER)");

}


A hibát a DAO osztályban az "int year = cursor.getInt(cursor.getColumnIndex("year"));" dobja...


2021. jan. 29. 19:19
 1/5 anonim ***** válasza:
100%

Latszolag nem talal year oszlopot, ezert a getColumnIndex -1-et ad vissza es emiatt elszall IllegalStateExceptionnel.

Biztosan letrejon a year oszlop? Nincs elirva valahol a neve? Ha kiveszed azt a sort, a tobbi oszlopot latja rendesen?

2021. jan. 29. 20:05
Hasznos számodra ez a válasz?
 2/5 A kérdező kommentje:
Ha kiveszem akkor a következőnél dobja ki a hibát... és így tovább... :/ olyan mintha csak az _id és a name oszlopok lennének, a többivel mi történik?
2021. jan. 29. 20:12
 3/5 anonim ***** válasza:
Hogy toltod fel a tablat? Van adat ezekben az oszlopokban?
2021. jan. 29. 20:23
Hasznos számodra ez a válasz?
 4/5 A kérdező kommentje:
Úgy oldottam meg, hogy feltöltöttem a táblát egy ContetValues-al aztán megint dobott egy Exceptiont amit meg úgy kellett megoldani, hogy le kellett törölnöm azt a Virtual Device-t amivel futtattam, majd újra létrehozni ugyan azt a Device-t és így elindult az app hiba nélkül...
2021. jan. 30. 09:22
 5/5 anonim ***** válasza:
100%
Valszeg kesobb raktad bele a year stb. oszlopokat a CREATE statementbe, az onCreate pedig csak akkor fut le, amikor elso alkalommal letrejon az adatbazis, ezert azok az oszlopok nem kerultek bele.
2021. jan. 30. 09:42
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!