Absturz einer for-Schleife

PeterPaul

Neues Mitglied
Ich habe eine App, die bei einigen Usern abstürzt. Googles Absturzbericht verweist auf eine Codezeile, bei der ich mir keinen Fehler eklären kann:
Java:
Caused by java.lang.ArrayIndexOutOfBoundsException:
  at Taka.ai_ghzghkg.Taka.Settings.onResume (Settings.java:504)

Code:
for (int i = 1; i <= Integer.parseInt(MainActivity.TaKas[aa.getPosition(FavTxt) - 1][2]); i++)
  arrayListeSeiten.add(Integer.toString(i));

Ich habe es mehrfach geprüft und kann kein überschreiten der Arraygrenzen feststellen.

Das merkwürdige ist, daß dieser Absturz nur bei zwei Usern (von >5000) vorkommt. Beide nutzen ein Samsung mit Android 15 laut Google ANR. Bei zwei simulierten Handys ist nichts festzustellen, auf meinem realen Handy auch nicht. Und bei 99% der Nutzer eben auch nicht. Übersehe ich da irgendwas oder ist das Android 15 auf den Samsungs einfach Schuld?
 

Oneixee5

Top Contributor
Mit so wenig Kontext ist es sehr schwer etwas zu raten. Irgendwie muss man aber immer mit allem rechnen. Irgend etwas könnte nicht geladen worden sein, das Timing stimmt nicht weil das Programm aus dem Standby kommt oder sonst was ist passiert.

Trotzdem sieht auch der Code 'worst' aus. Statt der Umwandlung von int <--> String sollte über die Verwendung einer geeigneten Datenstruktur nachgedacht werden. Arrays sind meist die schlechteste Wahl, weil alles kompliziert und unflexibel wird. Änderungen sind dann meist sehr schwer umzusetzen und ziehen viele Anpassungen nach sich.

Dann ist das ziemlich riskant:
Java:
MainActivity.TaKas[aa.getPosition(FavTxt)][2]
Hier kann man erst mal nicht wissen was aus aa.getPosition(FavTxt) zurückkommt. Das könnte auch -1 sein, wenn FavTxt nicht gefunden wird. Oder auch ein Wert welcher die Dimension von MainActivity.TaKas überschreitet. Ich denke hier sollte eine Prüfung eingebaut werden
Java:
int pos = aa.getPosition(FavTxt);
if (pos >= 0 && pos < MainActivity.TaKas.length) {
    String value = MainActivity.TaKas[pos][2];
    try {
        int max = Integer.parseInt(value);
        for (int i = 1; i <= max; i++) {
            arrayListeSeiten.add(Integer.toString(i));
        }
    } catch (NumberFormatException e) {
        // Optional: Fehlerbehandlung, z.B. Logging oder Defaultwert
    }
}

Falls die Prüfung if (pos >= 0 && pos < MainActivity.TaKas.length) wirklich Überflüssig sein sollte, wird die JVM den Bytecode zur Laufzeit dahingehend optimieren.

Die effizienteste Methode, um in Java einen int-Wert in einen String umzuwandeln, ist die Verwendung von String.valueOf(i).
Diese Methode wird im Allgemeinen gegenüber Integer.toString(i) bevorzugt, da sie besser lesbar und null-sicher ist (beim Umgang mit Objekten).
Java:
arrayListeSeiten.add(String.valueOf(i));

Sprechende Variablennamen und ein ein paar Klammern schaden dem Ganzen auch nicht. Code muss nicht kurz sein, sondern lesbar.
 

M.L.

Top Contributor
Weiterhin könnte man das Programm "Android Logcat" mal ansehen um ungünstige Werte bei aa.getPosition(FavTxt) oder MainActivity.TaKas.length zu protokollieren. Was daten-bezogene Probleme ( get-Position ) auf den speziellen Zielgeräten nicht ausschliesst.
 

PeterPaul

Neues Mitglied
Danke schon Mal.
Mich irritiert vor allem, daß der Fehler halt nur bei zwei Usern auftritt. Finde ich merkwürdig, wenn ein systemischer Fehler vorliegt.
 

Oneixee5

Top Contributor
Danke schon Mal.
Mich irritiert vor allem, daß der Fehler halt nur bei zwei Usern auftritt. Finde ich merkwürdig, wenn ein systemischer Fehler vorliegt.
Was hier passiert ist nur ein Folgefehler eines vorherigen Problems. Aus irgendeinem Grund ist das Array unvollständig. Das bekommt dein Programm aber nicht mit.Deshalb steigt es hier aus.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Menü Header App Absturz bei Headeränderungen Android & Cross-Platform Mobile Apps 49
B Absturz der App bei leeren Edittext Android & Cross-Platform Mobile Apps 14
MaxG. Android Absturz bei Aufruf von onClickListener() Android & Cross-Platform Mobile Apps 8
M Android onClick führt zu Absturz Android & Cross-Platform Mobile Apps 8
B Android Bei Absturz Fehlerdatei erzeugen Android & Cross-Platform Mobile Apps 2
P CameraView - Absturz Android & Cross-Platform Mobile Apps 19
N Android Retain-Fragment + ActionBar-Tabs = Absturz!? Android & Cross-Platform Mobile Apps 9
T App Absturz bei Wechsel von WLAN zu mobilem Internet bzw. andersrum Android & Cross-Platform Mobile Apps 5
N Android bei Animation Absturz Android & Cross-Platform Mobile Apps 10
missy72 Android iperf3 in einer eigen Android App Android & Cross-Platform Mobile Apps 9
T Lesen / Schreiben einer Textdatei - SD-Karte Android & Cross-Platform Mobile Apps 42
OnDemand Allgemeine Fragen zu einer App Android & Cross-Platform Mobile Apps 4
I Foto mit einer bestimmten Auflösung aufnehmen und als Datei ablegen. Android & Cross-Platform Mobile Apps 5
Jose05 Wie kann man mit einer App Geld verdienen? Android & Cross-Platform Mobile Apps 6
T Android Studio: Einen Button in einer For Schleife verwenden Android & Cross-Platform Mobile Apps 2
M Activity einer anderen App mit result Android & Cross-Platform Mobile Apps 2
J Android Zugriff auf eine Datei, diese von einer anderen App erstellt wurde? Android & Cross-Platform Mobile Apps 11
Mo1234 Plattform in einer App. Bitte um Hilfe! Android & Cross-Platform Mobile Apps 8
A Mit Java neues item in ein string-array einer Strings.xml schreiben Android & Cross-Platform Mobile Apps 4
P Android Wie bestimme ich den Dateinamen einer Bilddatei? Android & Cross-Platform Mobile Apps 11
B Falsche ausgabe einer Rechnung! Android & Cross-Platform Mobile Apps 8
M Android Dynamische SchriftGröße einer TextView Android & Cross-Platform Mobile Apps 3
J Android Suche in einer ListView Android & Cross-Platform Mobile Apps 3
G Android Daten in einer Datenbank speichern Android & Cross-Platform Mobile Apps 1
J Android button mithilfe einer Methode automatisch erstellen Android & Cross-Platform Mobile Apps 6
JavaWolf165 Android Fehler beim Speichern/Downloaden einer Datei Android & Cross-Platform Mobile Apps 2
S Android Probleme beim Verbinden mit einer HTTPS Seite Android & Cross-Platform Mobile Apps 4
B Android wie kann ich in einer xml nach bestimme item suchen (DOM) Android & Cross-Platform Mobile Apps 7
C Android Diese Art von Werbung in einer App? Android & Cross-Platform Mobile Apps 1
G ständig ändernden Inhalten in einer App Android & Cross-Platform Mobile Apps 2
R Android Eine Website-frame in einer App Android & Cross-Platform Mobile Apps 4
H Android Aufrufen von "setContentView" in einer anderen Klasse Android & Cross-Platform Mobile Apps 3
S Die Erstellung einer eigenen App,Kosten? Android & Cross-Platform Mobile Apps 1
M Android Speichern einer .txt Datei im InternalStorage Android & Cross-Platform Mobile Apps 2
B Fragen zum Speichern einer Datei auf dem Gerät? Android & Cross-Platform Mobile Apps 7
C Auf Play Store verlinken - Code in einer Extraklasse Android & Cross-Platform Mobile Apps 1
G Thread in einer Service erstellen Android & Cross-Platform Mobile Apps 0
B Android Spieler Steuerung auf einer Map mit Berge? Android & Cross-Platform Mobile Apps 7
M Android Quellcode einer Website Android & Cross-Platform Mobile Apps 7
K Löschen einer Tabelle bei PlayStore update Android & Cross-Platform Mobile Apps 2
H Veröffentlichung einer Bezahl-App Android & Cross-Platform Mobile Apps 5
Robat Android ConcurrentModificationException während einer for Schleife Android & Cross-Platform Mobile Apps 15
D Android EditText und TextView haben unterschiedliche größen innerhalb einer TableRow Android & Cross-Platform Mobile Apps 18
M Umlaute im Quellcode einer Website richtig darstellen Android & Cross-Platform Mobile Apps 4
M Quellcode einer Website auslesen Android & Cross-Platform Mobile Apps 5
T Android platzsparende Codierung verschlüsselter Texte in einer URI Android & Cross-Platform Mobile Apps 8
S Android "Weiches wechseln" zwischen Views in einer Activity Android & Cross-Platform Mobile Apps 3
F Bei einer Android Java App, Objekte erstellen Android & Cross-Platform Mobile Apps 2
G eine Methode einer anderen Activity aufrufen Android & Cross-Platform Mobile Apps 9
G Einbinden einer Bibliothek's App Android & Cross-Platform Mobile Apps 2
G Daten von einer Activity zur nächsten übergeben Android & Cross-Platform Mobile Apps 6
A Fehler beim Starten eines Intents - alles in einer Klasse funktioniert... Android & Cross-Platform Mobile Apps 4
A Kann nicht in TextView einer anderen Klasse schreiben - wieso? Android & Cross-Platform Mobile Apps 9
A Beenden einer 2ten Activity Android & Cross-Platform Mobile Apps 3
T Android Multiple SDK-Support in einer Apk Android & Cross-Platform Mobile Apps 5
R Android Unterschiedliche Versionen von Android in einer App Android & Cross-Platform Mobile Apps 7
D Mehrere Kopien von einer Form Android & Cross-Platform Mobile Apps 7
M Wie in einer anderen "nicht canvas" klasse zeichne Android & Cross-Platform Mobile Apps 5
S Problem mit Einbindung einer externer Bibliothek Android & Cross-Platform Mobile Apps 2
S Variable Anzahl von Bytes aus einer Datei lesen Android & Cross-Platform Mobile Apps 2
P Erstellen einer Jar-File Android & Cross-Platform Mobile Apps 2
W Background Service Daten verarbeiten/Schleife ect. Android & Cross-Platform Mobile Apps 1
A Android Studio: while-Schleife beginnt nicht Android & Cross-Platform Mobile Apps 5
N Blackscreen bei while-Schleife? (Android-Studio) Android & Cross-Platform Mobile Apps 2
S Android LogCat Ausgaben in Schleife geht nicht? Android & Cross-Platform Mobile Apps 2
G keine TextView-Aktualisierung in der while-Schleife Android & Cross-Platform Mobile Apps 18

Ähnliche Java Themen

Neue Themen


Oben