Skip to content

[Bug]: openjdk17 & 21: java.lang.UnsatisfiedLinkError: cannot locate symbol "libiconv_open" in libsplashscreen.so #25368

Description

@IntinteDAO

Problem description

When attempting to run a Java application that utilizes java.awt.SplashScreen, a java.lang.UnsatisfiedLinkError occurs. The stack trace indicates that the library /data/data/com.termux/files/usr/lib/jvm/java-17-openjdk/lib/libsplashscreen.so is unable to locate the symbol libiconv_open.

OpenJDK21 also have this issue

What steps will reproduce the bug?

Install openjdk-17 or 21in Termux.

Run a Java application that uses the splash screen functionality (e.g., LateralGM or another Swing/AWT application).

Observe the UnsatisfiedLinkError in the console.
java.lang.UnsatisfiedLinkError: /data/data/com.termux/files/usr/lib/jvm/java-17-openjdk/lib/libsplashscreen.so: dlopen failed: cannot locate symbol "libiconv_open" referenced by "/data/data/com.termux/files/usr/lib/jvm/java-17-openjdk/lib/libsplashscreen.so"...
	at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
	at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:388)
	at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:232)
	at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:174)
	at java.base/jdk.internal.loader.NativeLibraries.findFromPaths(NativeLibraries.java:315)
	at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:285)
	at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2403)
	at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:818)
	at java.base/java.lang.System.loadLibrary(System.java:2006)
	at java.desktop/java.awt.SplashScreen$1.run(SplashScreen.java:135)
	at java.desktop/java.awt.SplashScreen$1.run(SplashScreen.java:133)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
	at java.desktop/java.awt.SplashScreen.getSplashScreen(SplashScreen.java:132)
	at org.lateralgm.main.LGM$SplashProgress.<init>(LGM.java:1338)
	at org.lateralgm.main.LGM.createAndShowGUI(LGM.java:1099)
	at org.lateralgm.main.LGM.access$2(LGM.java:1091)
	at org.lateralgm.main.LGM$6.run(LGM.java:1238)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

What is the expected behavior?

The Java application should launch correctly, and the splash screen (if defined) should be displayed without any errors. I believe it's some kind of regression, because it works in the past

System information

Termux Variables:
TERMUX_APP_PACKAGE_MANAGER=apt
TERMUX_APP__APK_FILE=/data/app/~~otrb4Ex-7qEtfzad1W8dLQ==/com.termux-isYcPIGG_qrazHCRR-SqxQ==/base.apk
TERMUX_APP__APK_RELEASE=F_DROID
TERMUX_APP__APP_VERSION_CODE=1020
TERMUX_APP__APP_VERSION_NAME=0.119.0-beta.1
TERMUX_APP__DATA_DIR=/data/user/0/com.termux
TERMUX_APP__IS_DEBUGGABLE_BUILD=false
TERMUX_APP__IS_INSTALLED_ON_EXTERNAL_STORAGE=false
TERMUX_APP__PACKAGE_NAME=com.termux
TERMUX_APP__PID=4715
TERMUX_APP__TARGET_SDK=28
TERMUX_VERSION=0.119.0-beta.1
TERMUX__SE_FILE_CONTEXT=u:object_r:app_data_file:s0:c39,c257,c512,c768
TERMUX__SE_INFO=default:targetSdkVersion=28:complete
TERMUX__SE_PROCESS_CONTEXT=u:r:untrusted_app_27:s0:c39,c257,c512,c768
TERMUX__UID=10295
TERMUX__USER_ID=0
Packages CPU architecture:
aarch64
Subscribed repositories:
# sources.list
deb https://ftp.fau.de/termux/termux-main stable main
# tur-repo (sources.list.d/tur.list)
deb https://tur.kcubeterm.com tur-packages tur tur-on-device tur-continuous
# x11-repo (sources.list.d/x11.list)
deb https://ftp.fau.de/termux/termux-x11 x11 main
Updatable packages:
layer-shell-qt/x11 6.4.3 aarch64 [upgradable from: 6.4.2]
openjdk-17-x/stable 17.0.16 aarch64 [upgradable from: 17.0.15-2]
openjdk-17/stable 17.0.16 aarch64 [upgradable from: 17.0.15-2]
termux-tools version:
1.45.0
Android version:
15
Kernel build information:
Linux localhost 4.19.157-perf+ #1 SMP PREEMPT Mon Jul 7 01:44:11 UTC 2025 aarch64 Android
Device manufacturer:
motorola
Device model:
XT2125-4
Supported ABIs:
SUPPORTED_ABIS: arm64-v8a,armeabi-v7a,armeabi
SUPPORTED_32_BIT_ABIS: armeabi-v7a,armeabi
SUPPORTED_64_BIT_ABIS: arm64-v8a
LD Variables:
LD_LIBRARY_PATH=
LD_PRELOAD=/data/data/com.termux/files/usr/lib/libtermux-exec-ld-preload.so
Installed termux plugins:
com.termux.x11 versionCode:15
com.termux.gui versionCode:7

Metadata

Metadata

Assignees

No one assigned

    Labels

    bug reportSomething is not working properlyjavaIssue is about Java related stuff

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions