Information regarding the Android version

That seems strange, might have something to do with my installation automatically signing me into my Google Play Games account.

Yeah, that is probably why… :thinking:

That’s the version I played on my Samsung tablet, but it ended up infinitely downloading 0 MB of nothing, making it impossible for me to play.

Version 1.7.3 and newer didn’t require me to download anything, are you sure you didn’t install version 1.7.2?

I’m trying to install blockheads with apk. But 1.7.3 and 1.7.4, 1.7.5 doesn’t work for me. At least it asks permissions. And they show black screen less than 1 second, it crashs.

What’s your android version?

Have you tried the 1.7.6 APK yet?

Android 11, all of the versions work for me

It gives me a white screen problem

What are the hardware specifications of your device? Which version of Android are you running?

For simple, ram 4GB and storage 64GB, android 7.0

Even though your device is running an old version of Android, it’s also experiencing the white screen issue? That is very interesting… :thinking:

I haven’t thought about Android 7.0 is old version. My old phone which can run blockheads, has android 5.0. :confused:

Android 7.0 is as old as my forum account (almost a half a decade ago). Android 5.0 is even older than that.

Does the game not load after you wait for a few minutes?

No it shows black screen about three seconds and crashes. I can see main title screen less than one seconds too.

Interesting, it may be that your device simply isn’t supported.

I decided to find out the root cause of both the startup freeze and the crash when trying to join a multiplayer world. With the help of android debug tools I was able to track down what was taking so much startup time and the first thing I see is a lot of background apps being killed due to low memory while loading “libCoreText.so” and after waiting over a minute it loads the game, with ghidra I analyzed what the library was used for and why it was taking so long to load, it was the library to render font! But still no answer why it was taking so long, the game only has a few custom fonts… right? That was the moment when I got what was the problem, it was not loading just the game fonts, but all system fonts, the first 10 fonts it loads just fine, but modern android devices have way too many fonts and the memory usage exploded trying to load it all. Since I have a rooted device I used instrumentation tools to patch the game, after tweaking around what fonts the game should load it finally started without freezing :smile:

About the Welcome message crash I’m still trying to figure out the root cause, my fix so far is disabling noodlecake webview.

I don’t know if I can redistribute a patched apk, but I can provide all instructions in how to apply my patch for both rooted and nonrooted devices.
(Patch tested with android 10 and the version 1.7.6 of the game)

1 Like

Do newer versions of Android’s WebView simply not work well with the game?

It works just fine but the game enters in some deadlock while rendering the screen after the webview is displayed.

"MainThread" prio=5 tid=16 Waiting
  | group="main" sCount=1 dsCount=0 flags=1 obj=0x13f42220 self=0xd2a01400
  | sysTid=16088 nice=0 cgrp=default sched=0/0 handle=0xbb23e230
  | state=S schedstat=( 7168135372 766408801 6065 ) utm=650 stm=65 core=4 HZ=100
  | stack=0xbac3b000-0xbac3d000 stackSize=6160KB
  | held mutexes=
  at java.lang.Object.wait(Native method)
  - waiting on <0x06ff152f> (a java.lang.Object)
  at java.lang.Object.wait(Object.java:442)
  at java.lang.Object.wait(Object.java:568)
  at com.apportable.gl.GLSurfaceView.readySurface(GLSurfaceView.java:645)
  - locked <0x06ff152f> (a java.lang.Object)
  at com.apportable.gl.GLSurfaceView$1$1.run(GLSurfaceView.java:98)
  at com.apportable.MainThread.runTickActions(MainThread.java:128)
  at com.apportable.MainThread.tick(MainThread.java:113)
  at com.apportable.MainThread.nativeRun(Native method)
  at com.apportable.MainThread.access$100(MainThread.java:15)
  at com.apportable.MainThread$2.run(MainThread.java:83)
  at android.os.Handler.handleCallback(Handler.java:883)
  at android.os.Handler.dispatchMessage(Handler.java:100)
  at android.os.Looper.loop(Looper.java:214)
  at com.apportable.MainThread$1.run(MainThread.java:42)
  at java.lang.Thread.run(Thread.java:919)

I’m not good with opengl related stuff so I have no idea why it happens.

Yes, you have to spam the back button on your device when loading a multiplayer world to get it to load at all. It’s quite annoying