Is it possible to launch JME3-powered games using virtual Linux on a tablet?

I develop games using my tablet with Android (I don’t have enough time on a full-size X64-86 PC - I usually in short train-trips).

I have installed a virtual Linux (Ubuntu 22.04 with LXDE-desktop) on my tablet with native Android 11 (I don’t have root privileges on my tablet. That is why my Linux was installed from Termux and launched as sandbox inside Android).

I have installed Intellij IDEA and JDK and tried to continue the development using Java.

My projects which use LibGDX for the graphic output can not only compile but also run on my Tablet successfully.
But when I try to launch my JME3-projects - they fail.
One of the simplest test, I have tried to launch, failed with next output:

 * Profile: Core
ALSA lib confmisc.c:855:(parse_card) cannot find card '0'
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1334:(snd_func_refer) error evaluating name
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5701:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM default
May 01, 2025 12:55:48 PM com.jme3.app.LegacyApplication handleError
SEVERE: Uncaught exception thrown in Thread[jME3 Main,5,main]
java.lang.NullPointerException
	at org.lwjgl.system.Checks.check(Checks.java:188)
	at org.lwjgl.openal.ALC10.nalcCreateContext(ALC10.java:129)
	at org.lwjgl.openal.ALC10.alcCreateContext(ALC10.java:145)
	at com.jme3.audio.lwjgl.LwjglALC.createALC(LwjglALC.java:58)
	at com.jme3.audio.openal.ALAudioRenderer.initOpenAL(ALAudioRenderer.java:94)
	at com.jme3.audio.openal.ALAudioRenderer.initialize(ALAudioRenderer.java:229)
	at com.jme3.app.LegacyApplication.initAudio(LegacyApplication.java:304)
	at com.jme3.app.LegacyApplication.initialize(LegacyApplication.java:668)
	at com.jme3.app.SimpleApplication.initialize(SimpleApplication.java:198)
	at com.jme3.system.lwjgl.LwjglWindow.initInThread(LwjglWindow.java:608)
	at com.jme3.system.lwjgl.LwjglWindow.run(LwjglWindow.java:712)
	at java.base/java.lang.Thread.run(Thread.java:840)


BUILD SUCCESSFUL in 12s
5 actionable tasks: 1 executed, 4 up-to-date

If it is important - I have the root-privilegies on my virtual linux (Intellij IDEA launched as ROOT inside virtual Linux).

My question is - what should I enable/disable to have the ability to run JME3 projects on my tablet? If I right understood - something is wrong with the sound-support.

1 Like

Do you need the audio? (I’m wondering if the virtual linux is incapable of making sound).

If you don’t need sound you can do this

settings.setAudioRenderer(null); 

I had exactly this problem with the screenshot tests (which run JME in a github pipeline) and disabling sound entirely solved the problem.

Someone else may have a solution to actually make sound work though, which would obviously be better

3 Likes

@richtea , thanks, It works. Of course I don’t think about the sound and music in my game when I stay on one feet in a filled
subway car and try to correct my code.

I don’t need to play sound now

3 Likes