Skip to content

Rare NPE in GlyphLayout #7582

Open
Open
@upost

Description

@upost

I have an Android app in the Play Store.
Rarely I see exceptions like this in the Google Play Console:

Exception java.lang.NullPointerException:
  at com.badlogic.gdx.graphics.g2d.GlyphLayout.setText (GlyphLayout.java:176)
  at com.badlogic.gdx.graphics.g2d.GlyphLayout.setText (GlyphLayout.java:95)
  at com.badlogic.gdx.scenes.scene2d.ui.Label.computePrefSize (Label.java:162)
  at com.badlogic.gdx.scenes.scene2d.ui.Label.scaleAndComputePrefSize (Label.java:147)
  at com.badlogic.gdx.scenes.scene2d.ui.Label.getPrefWidth (Label.java:244)
  at com.badlogic.gdx.scenes.scene2d.ui.Label.<init> (Label.java:75)

or:

(RuntimeException root cause)
Caused by java.lang.NullPointerException:
  at com.badlogic.gdx.graphics.g2d.GlyphLayout.calculateWidths (GlyphLayout.java:280)
  at com.badlogic.gdx.graphics.g2d.GlyphLayout.setText (GlyphLayout.java:266)
  at com.badlogic.gdx.graphics.g2d.GlyphLayout.setText (GlyphLayout.java:95)
  at com.badlogic.gdx.scenes.scene2d.ui.Label.computePrefSize (Label.java:162)
  at com.badlogic.gdx.scenes.scene2d.ui.Label.scaleAndComputePrefSize (Label.java:147)
  at com.badlogic.gdx.scenes.scene2d.ui.Label.getPrefWidth (Label.java:244)
  at com.badlogic.gdx.scenes.scene2d.ui.Label.<init> (Label.java:75)

or, maybe related:

Exception java.lang.IndexOutOfBoundsException:
  at com.badlogic.gdx.utils.Array.get (Array.java:155)
  at com.badlogic.gdx.graphics.g2d.GlyphLayout.setText (GlyphLayout.java:215)
  at com.badlogic.gdx.graphics.g2d.GlyphLayout.setText (GlyphLayout.java:101)
  at com.badlogic.gdx.scenes.scene2d.ui.Label.computePrefSize (Label.java:160)
  at com.badlogic.gdx.scenes.scene2d.ui.Label.scaleAndComputePrefSize (Label.java:147)
  at com.badlogic.gdx.scenes.scene2d.ui.Label.getPrefHeight (Label.java:253)
  at com.badlogic.gdx.scenes.scene2d.ui.Label.layout (Label.java:175)
  at com.badlogic.gdx.scenes.scene2d.ui.Widget.validate (Widget.java:88)
  at com.badlogic.gdx.scenes.scene2d.ui.Stack.layout (Stack.java:107)
  at com.badlogic.gdx.scenes.scene2d.ui.WidgetGroup.validate (WidgetGroup.java:104)
  at com.badlogic.gdx.scenes.scene2d.ui.VerticalGroup.layout (VerticalGroup.java:201)
  at com.badlogic.gdx.scenes.scene2d.ui.WidgetGroup.validate (WidgetGroup.java:104)
  at com.badlogic.gdx.scenes.scene2d.ui.ScrollPane.layout (ScrollPane.java:498)

It happens in different labels, but only in labels, and I'm not able to reproduce it.

libgdx version: 1.12.1

Any idea?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions