gudzpoz / luajava

Lua for Java on Windows, Mac OS X, Linux, Android. 5.1, 5.2, 5.3, 5.4, LuaJ or LuaJIT.
https://gudzpoz.github.io/luajava/
Other
141 stars 17 forks source link

Doesn't work in termux #86

Closed osp54 closed 1 year ago

osp54 commented 1 year ago

When I launch example-all.jar in Termux:

java -jar example-all.jar
Failed to load native library:jansi-2.4.0-e8af7abbbd56fb7d-libjansi.so. osinfo: Linux/arm64
java.lang.UnsatisfiedLinkError: /data/data/com.termux/files/usr/tmp/jansi-2.4.0-e8af7abbbd56fb7d-libjansi.so: dlopen failed: library "libc.so.6" not found: needed by /data/data/com.termux/files/usr/tmp/jansi-2.4.0-e8af7abbbd56fb7d-libjansi.so in namespace (default)
Lua Version: 51
Exception in thread "main" java.lang.LinkageError: Unable to find natives or init
        at party.iroiro.luajava.lua51.Lua51.getNatives(Lua51.java:57)
        at party.iroiro.luajava.lua51.Lua51.<init>(Lua51.java:44)
        at party.iroiro.luajava.Console.getLua(Console.java:140)
        at party.iroiro.luajava.Console.startInteractive(Console.java:54)
        at party.iroiro.luajava.Console.main(Console.java:40)
Caused by: java.lang.IllegalStateException: com.badlogic.gdx.utils.SharedLibraryLoadRuntimeException: Couldn't load shared library 'liblua51arm64.so' for target: Linux, ARM, 64-bit
        at party.iroiro.luajava.lua51.Lua51Natives.<init>(Lua51Natives.java:128)
        at party.iroiro.luajava.lua51.Lua51.getNatives(Lua51.java:55)
        ... 4 more
Caused by: com.badlogic.gdx.utils.SharedLibraryLoadRuntimeException: Couldn't load shared library 'liblua51arm64.so' for target: Linux, ARM, 64-bit
        at com.badlogic.gdx.utils.SharedLibraryLoader.load(SharedLibraryLoader.java:128)
        at party.iroiro.luajava.lua51.Lua51Natives.<init>(Lua51Natives.java:122)
        ... 5 more
Caused by: com.badlogic.gdx.utils.SharedLibraryLoadRuntimeException: java.lang.UnsatisfiedLinkError: /data/data/com.termux/files/usr/tmp/libgdxu0_a333/815951da/liblua51arm64.so: dlopen failed: library "libm.so.6" not found: needed by /data/data/com.termux/files/usr/tmp/libgdxu0_a333/815951da/liblua51arm64.so in namespace (default)
        at com.badlogic.gdx.utils.SharedLibraryLoader.loadFile(SharedLibraryLoader.java:325)
        at com.badlogic.gdx.utils.SharedLibraryLoader.load(SharedLibraryLoader.java:124)
        ... 6 more
Caused by: java.lang.UnsatisfiedLinkError: /data/data/com.termux/files/usr/tmp/libgdxu0_a333/815951da/liblua51arm64.so: dlopen failed: library "libm.so.6" not found: needed by /data/data/com.termux/files/usr/tmp/libgdxu0_a333/815951da/liblua51arm64.so in namespace (default)
        at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
        at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:384)
        at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:228)
        at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:170)
        at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2389)
        at java.base/java.lang.Runtime.load0(Runtime.java:751)
        at java.base/java.lang.System.load(System.java:1912)
        at com.badlogic.gdx.utils.SharedLibraryLoader.loadFile(SharedLibraryLoader.java:331)
        at com.badlogic.gdx.utils.SharedLibraryLoader.loadFile(SharedLibraryLoader.java:300)
        ... 7 more

java --version

java --version
openjdk 17-internal 2021-09-14
OpenJDK Runtime Environment (build 17-internal+0-adhoc..src)
OpenJDK 64-Bit Server VM (build 17-internal+0-adhoc..src, mixed mode)
gudzpoz commented 1 year ago

Desktop natives depend on glibc. See GNU C Library (glibc) Compatibility. So it will not run on Termux, and I do not aim to support non-glibc environments, which can make the build process way too complex.

I am not familiar with Termux environments, but it seems you can actually get glibc running there with https://github.com/termux-pacman/glibc-packages/.

osp54 commented 1 year ago

thanks