Wir haben die folgenden Anfragen von Benutzern der von mir entwickelten App KUMIWAKE erhalten.
Früher habe ich es normal verwendet, aber wenn ich versuche, Mitglieder auszuwählen oder zu gruppieren, wird die Meldung "Kumiwake wird aufgrund eines Problems geschlossen" angezeigt. Was soll ich machen?
Aus irgendeinem Grund gab es in der neuesten Version viele Abstürze, daher sind diese Meinungen wirklich hilfreich.
Hier gibt es jedoch ein Problem. Ich kann den Fehler in meiner Umgebung nicht reproduzieren. Weder die eigentliche Maschine noch die AVD.
Mit Blick auf die Stapelspur der Play Console war dies wie folgt.
java.lang.IllegalStateException:
at android.database.CursorWindow.nativeGetString (CursorWindow.java)
at android.database.CursorWindow.getString (CursorWindow.java:438)
at android.database.AbstractWindowedCursor.getString (AbstractWindowedCursor.java:51)
...
Als ich es nachgeschlagen habe, sah es wie ein Fehler aufgrund des Cursors der Datenbank aus.
Es schien vorher zu funktionieren, also habe ich den Änderungsverlauf des Cursor-Teils überprüft und es geschafft, die Ursache zu identifizieren.
c.getString (c.getColumnIndex (COL_NAME))
← Dieser Teil
https://codeday.me/jp/qa/20190421/668862.html Es scheint, dass getColumnIndex (COL_NAME) den Index von COL_NAME nicht finden konnte und wie in dieser Antwort -1 zurückgegeben hat. Dies führt zu "c.getString (-1)" und die Spalte kann nicht gefunden werden! Du hast einen Fehler gesagt. (Spaltennummer ist 0 ~)
Vorläufig habe ich mich entschlossen, getColumnIndex () nicht zu verwenden. (Ich möchte es wirklich benutzen ...)
Vor der Änderung: c.getString (c.getColumnIndex (COL_NAME))
Nach der Änderung: c.getString (1)
Ich habe die Spaltennummer direkt angegeben. Es scheint, dass es nach der Korrektur normal funktioniert hat. Ich bin glücklich.
Wenn Sie getColumnIndex (COL_NAME) verwenden möchten, wird -1 zurückgegeben, wenn die Spalte nicht gefunden wird. Verwenden Sie daher besser getColumnIndexOrThrow (COL_NAME) wie in [diesem Artikel] [1]. Korrekt.
https://teratail.com/questions/128793
Jemand hatte ein ähnliches Problem. Wie Sie in dieser Frage sehen können, scheint es, dass getColumnIndex ()
je nach Terminal einen guten Wert zurückgeben kann oder nicht. Es hing nicht von der Android-Version ab, also ist es vielleicht ein Geräteproblem ...
Wenn Sie mit SQLite vertraut sind, bringen Sie es mir bitte bei. (Weinen)
Android Developers [Yukis Zweig Android: Cursor API Zusammenfassung] [1] [1]:http://yuki312.blogspot.com/2012/03/androidcursorapi.html
Recommended Posts