WinterLicht / PepperAndCarrotRunningGame

Pepper&Carrot themed endless runner game made with libGDX (WIP)
55 stars 13 forks source link

Run into Ubuntu OS - Illegal reflective access error #12

Open MoonDragon-MD opened 2 years ago

MoonDragon-MD commented 2 years ago

Hi, I wanted to try this game on Ubuntu Linux but I am getting these errors java -jar PepperCarrotEndlessRunner_v0-1alpha_for-desktop.jar

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.lwjgl.LWJGLUtil$3 (file:/mnt/ffd3/md/Program/PepperCarrot/PepperCarrotEndlessRunner_v0-1alpha_for-desktop.jar) to method java.lang.ClassLoader.findLibrary(java.lang.String)
WARNING: Please consider reporting this to the maintainers of org.lwjgl.LWJGLUtil$3
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Inconsistency detected by ld.so: dl-lookup.c: 111: check_match: Assertion `version->filename == NULL || ! _dl_name_match_p (version->filename, map)' failed!

How can I fix it?

remram44 commented 2 years ago

Looks like you have to update lwgjl

MoonDragon-MD commented 2 years ago

I have ubuntu 20.04 LTS I have not made any changes to java, in my package manager there is no lwgjl. Where should I look, thanks

Deevad commented 2 years ago

Hi @MoonDragon-MD , (hi RemRam!)

I can also reproduce the issue on Kubuntu 20.04 LTS with the package I host here https://www.davidrevoy.com/article607/endless-runner-game-by-winterlicht , the output is not 100% similar, but it sounds related:

 ~ »»» java -jar PepperCarrotEndlessRunner_v0-1alpha_for-desktop.jar 
LwjglApplication: Couldn't initialize audio, disabling audio
java.lang.UnsatisfiedLinkError: Can't load library: /usr/lib/jvm/java-11-openjdk-amd64/lib/libawt_xawt.so
        at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2630)
        at java.base/java.lang.Runtime.load0(Runtime.java:768)
        at java.base/java.lang.System.load(System.java:1837)
        at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
        at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2442)
        at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2498)
        at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2694)
        at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2648)
        at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:830)
        at java.base/java.lang.System.loadLibrary(System.java:1873)
        at java.desktop/java.awt.Toolkit$3.run(Toolkit.java:1399)
        at java.desktop/java.awt.Toolkit$3.run(Toolkit.java:1397)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.desktop/java.awt.Toolkit.loadLibraries(Toolkit.java:1396)
        at java.desktop/java.awt.Toolkit.<clinit>(Toolkit.java:1429)
        at org.lwjgl.LinuxSysImplementation.<clinit>(LinuxSysImplementation.java:50)
        at org.lwjgl.Sys.createImplementation(Sys.java:131)
        at org.lwjgl.Sys.<clinit>(Sys.java:116)
        at org.lwjgl.openal.AL.<clinit>(AL.java:59)
        at com.badlogic.gdx.backends.lwjgl.audio.OpenALAudio.<init>(OpenALAudio.java:72)
        at com.badlogic.gdx.backends.lwjgl.LwjglApplication.<init>(LwjglApplication.java:86)
        at com.badlogic.gdx.backends.lwjgl.LwjglApplication.<init>(LwjglApplication.java:67)
        at com.peppercarrot.runninggame.desktop.DesktopLauncher.main(DesktopLauncher.java:15)
Exception in thread "LWJGL Application" java.lang.NoClassDefFoundError: Could not initialize class org.lwjgl.Sys
        at org.lwjgl.opengl.Display.<clinit>(Display.java:135)
        at com.badlogic.gdx.backends.lwjgl.LwjglGraphics.setVSync(LwjglGraphics.java:555)
        at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:122)
 ~ »»» 

Unfortunately, I have 0 knowledge in Java, so after browsing for 20min pages explaining tips I had even no idea how to apply, I abandonned.

MoonDragon-MD commented 2 years ago

I managed to get it to work with java 8, now I'll explain: first of all open the terminal and write to us java -version It should give you such a result:

openjdk version "11.0.14" 2022-01-18
OpenJDK Runtime Environment (build 11.0.14+9-Ubuntu-0ubuntu2.20.04)
OpenJDK 64-Bit Server VM (build 11.0.14+9-Ubuntu-0ubuntu2.20.04, mixed mode, sharing)

Then open the synaptic package manager, if you don't have it, install it With the search function, try to see if you have the following packages: openjdk-8-jre openjdk-8-jre-headless If you don't have them, install them, then from the terminal you move with cd to the game folder and give /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -jar PepperCarrotEndlessRunner_v0-1alpha_for-desktop.jar Here it works for me ;) (I use the space bar to jump and the letter v for the broom) Maybe you might be missing some other addiction, but I have no idea, I did some tests, I hope it can be useful to others too !! good job PS: David congratulations on your drawings, I really appreciate them

Deevad commented 2 years ago

Oh, good job @MoonDragon-MD ! I was able to run it.

I installed :

sudo apt install openjdk-8-jdk

Then I setup java default environment (to ensure to continue to use 11 as default after the install of 8)

sudo update-alternatives --config java

Then I could also manually launch the game

/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -jar PepperCarrotEndlessRunner_v0-1alpha_for-desktop.jar

I'll add these lines to my blog post.

(and thanks for your nice words about my drawings! And in case you refer to the artwork in-game; I have no credits for them; all artworks on this game are the beautiful work of WinterLicht ). :+1:

MoonDragon-MD commented 2 years ago

I'm glad to have helped start the game in the Gnu/Linux environment :)
Compliments are for your drawings and the great work on the Pepper&Carrot comic, I've been following the story for a long time and it feels like being a bit of a child again ;) I wish you good things for the future! Thanks, bye

Deevad commented 2 years ago

Aww... Many thanks! :heart_eyes_cat: