Minecraft – Why is Minecraft crashing

minecraft-java-edition

I'm trying to play Minecraft on my Samsung Chromebook. I got crouton on it and the launcher loads fine, but then I get this:

Java HotSpot(TM) Client VM warning: Using incremental CMS is deprecated and will likely be removed in a future release
Java HotSpot(TM) Client VM warning: You have loaded library /home/j/.minecraft/versions/1.11.2/1.11.2-natives-876969899415/liblwjgl64.so which might have disabled stack guard. The VM will try to fix the stack guard now.
It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'.
Exception in thread "main" java.lang.UnsatisfiedLinkError: /home/j/.minecraft/versions/1.11.2/1.11.2-natives-876969899415/liblwjgl.so: /home/j/.minecraft/versions/1.11.2/1.11.2-natives-876969899415/liblwjgl.so: cannot open shared object file: No such file or directory (Possible cause: can't load IA 32-bit .so on a ARM-bit platform)
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1857)
    at java.lang.Runtime.loadLibrary0(Runtime.java:870)
    at java.lang.System.loadLibrary(System.java:1122)
    at org.lwjgl.Sys$1.run(Sys.java:72)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.lwjgl.Sys.doLoadLibrary(Sys.java:66)
    at org.lwjgl.Sys.loadLibrary(Sys.java:96)
    at org.lwjgl.Sys.<clinit>(Sys.java:117)
    at bes.I(SourceFile:2777)
    at net.minecraft.client.main.Main.main(SourceFile:39)

Best Answer

The stack trace is suggesting that the file liblwjgl.so ( lightweight java game library ) was compiled to work on a x86 processor not an ARM one. Windows and MacOS basically only run on x86 ( Intel, AMD ) so they probably don't have a an ARM compatiable version of minecraft for PC.

Pocket edition might work as I believe you can now run APK packages on chromebooks and it would have been compiled for an ARM processor anyway ( most mobile devices use ARM processors ). I'm not sure what the controls will be like though...

I had a quick look and this article might be able to help you if your really dead set on getting the full version running on your chromebook. But dive in at your own risk! Highlights below:

halpme

I've figured out that I need to break open lwjgl-platform-(version)-natives-linux.jar and replace four files: liblwjgl.so, libopenal.so, and their 64 bit counterparts.

abcdef

Someone ported lwjgl to the raspberry pi (which has an ARM processor). You will need to do something very similar because I think you need opengl es 3.0 support too

halpme

I managed to get it to run. Performance is horrendous, but a higher end Chromebook with 3d acceleration support will get the job done. Here's what you have to do.

1) Install the Oracle JVM. Instructions here: http://www.webupd8.org/2012/01/install-oracle-java-jdk-7-in-ubuntu-via.html 2) Download the minecraft launcher and run it once, allowing it to update and then crash. 3) Install libegl1-mesa. Run the command "sudo apt-get install libegl1-mesa" in a terminal. 4) Download and compile LWJGL for the ARM platform. Instructions are found here: http://rogerallen.github.io/jetson/2014/07/31/minecraft-on-jetson-tk1/ 5) Patch Minecraft with the libraries that result from the compile. What you need to do is this: --- 1) Find the working directory for Minecraft. This is typically ~/.minecraft --- 2) Navigate to the "versions" folder. Make a copy of the version folder you want to patch and rename it "x.x.xarm" (x.x.x being the version number) --- 3) Open up the copied folder and change the jar and json files inside to the same name. --- 4) Open up the json file and append "arm" after the version number for every instance of an LWJGL library you find inside (disregarding nightly builds) --- 5) Navigate to ~/.minecraft/libraries/org/lwjgl/lwjgl and there will be a folder for each library inside. In each of those folders you'll find a folder marked with a version number. Append "arm" to the end of each. --- 6) Replace the libraries inside those folders with your new libraries. When you reach "lwjgl_platform", you need to break open the .jar file and delete every library except for "liblwjgl.so". Replace that with your new ARM compiled version. --- 7) Make sure that everywhere you see a version number (typically 2.9.1) you append "arm" to the end. This is mostly so that the minecraft launcher has no idea what the files are and doesn't attempt to update them. If you patched the json file correctly, it'll still run. --- 8) Start the game! I might make a shell script soon that does all this for you if the instructions are too complicated.