I use libgdx and I draw some text with BitmapFont, it works, but on some devices with Android 5.1 game draw only numbers and punctuation symbols, without any text.

I tried two ways:

1) Font Generator:

    mFontGenerator = new FreeTypeFontGenerator(Gdx.files.internal(fontName));
    mFontParameter = new FreeTypeFontGenerator.FreeTypeFontParameter();
    mFontParameter.characters = Font.FONT_CHARS;
    mFontParameter.size = mSizePixels;
    mFontParameter.color = mTextColor;
    mFontParameter.borderWidth = mBorderWidth;
    mFontParameter.borderColor = mBorderColor;
    mBitmapFont = mFontGenerator.generateFont(mFontParameter);

2) Font, created in Hiero:

    mBitmapFont = new BitmapFont(Gdx.files.internal(fontName));

Draw code is the same for both ways:

public void draw(SpriteBatch spriteBatch) {
    mBitmapFont.draw(spriteBatch, mText, mPositionX, mPositionY);

Both ways works on tablet with Android 7.1.1 and even on phone with Android 2.3.5, but on two devices with Android 5.1 I can see just numbers, no letters.

Thanks for any help!

  • \$\begingroup\$ If you remove all settings (so no useInteger, setScale, setColor) is it still the same? Also, what characters do FONT_CHARS contain? \$\endgroup\$
    – Charanor
    Jan 29 '18 at 10:34
  • \$\begingroup\$ @Charanor, yes, result is the same. FONT_CHARS - all symbols that I need to draw (alphabet, numbers), but it need only for FontGenerator and like I said both ways work on Android 7.1 and both ways don`t work for Android 5.1 \$\endgroup\$
    – SlowAR
    Jan 29 '18 at 11:48

The problem was with localization bundle files charset: files need have UTF-8, but by default in Android Studio it was windows-1251. To change it go to File -> Settings -> Editor -> File Encodings, press plus and choose localization bundle files, after choose UTF-8 at bottom, press OK


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.