'LIBGDX, MacOS M1, Lwjgl3, - problem create .jar file
New project. I'm trying to create a working .jar file - it doesn't work, it throws an error.
MacOS M1 Java 11 Zulu ARM 64
export JAVA_HOME=/Library/Java/JavaVirtualMachines/zulu-11.jdk/Contents/Home/ export PATH=$JAVA_HOME/bin:$PATH
or
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-11.0.12.jdk/Contents/Home/ export PATH=$JAVA_HOME/bin:$PATH
Android Gradle Plugin Vesrion - 4.2.2 Gradle Version - 6.9
If the version is increased, it gives a duplicate META-INF error:
nexus@MacBook-Pro-Igor imperialist % ./gradlew desktop:dist
> Task :desktop:dist FAILED
FAILURE: Build failed with an exception.
*What went wrong:
Execution failed for task ':desktop:dist'.
> Entry META-INF/INDEX.LIST is a duplicate but no duplicate handling strategy has been set. Please refer to https://docs.gradle.org/7.2/dsl/org.gradle.api.tasks.Copy.html#org.gradle.api.tasks.Copy:duplicatesStrategy for details.
* try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 6s
5 actionable tasks: 5 executed
nexus@MacBook-Pro-Igor imperialist %
Run commands: ./gradlew build ./gradlew desktop:dist
Result: BUILD SUCCESSFUL
Run command: java -jar -XstartOnFirstThread desktop-1.0.jar
Result:
nexus@MacBook-Pro-Igor libs % java -jar -XstartOnFirstThread desktop-1.0.jar
Exception in thread "main" java.lang.ExceptionInInitializerError
at org.lwjgl.system.Pointer$Default.<clinit>(Pointer.java:67)
at org.lwjgl.system.Callback.<clinit>(Callback.java:40)
at com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application.initializeGlfw(Lwjgl3Application.java:84)
at com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application.<init>(Lwjgl3Application.java:138)
at com.nexlab.a3.desktop.DesktopLauncher.main(DesktopLauncher.java:11)
Caused by: java.lang.UnsupportedOperationException: java.lang.VerifyError: Bad type on operand stack
Exception Details:
Location:
org/lwjgl/system/jni/JNINativeInterface.GetJavaVM(Lorg/lwjgl/PointerBuffer;)I @8: invokestatic
Reason:
Type 'org/lwjgl/PointerBuffer' (current frame, stack[0]) is not assignable to 'org/lwjgl/system/CustomBuffer'
Current Frame:
bci: @8
flags: { }
locals: { 'org/lwjgl/PointerBuffer' }
stack: { 'org/lwjgl/PointerBuffer', integer }
Bytecode:
0000000: b200 0499 0008 2a04 b800 432a b800 44b8
0000010: 0045 ac
Stackmap Table:
same_frame(@11)
at org.lwjgl.system.MemoryUtil.<clinit>(MemoryUtil.java:130)
... 5 more
Caused by: java.lang.VerifyError: Bad type on operand stack
Exception Details:
Location:
org/lwjgl/system/jni/JNINativeInterface.GetJavaVM(Lorg/lwjgl/PointerBuffer;)I @8: invokestatic
Reason:
Type 'org/lwjgl/PointerBuffer' (current frame, stack[0]) is not assignable to 'org/lwjgl/system/CustomBuffer'
Current Frame:
bci: @8
flags: { }
locals: { 'org/lwjgl/PointerBuffer' }
stack: { 'org/lwjgl/PointerBuffer', integer }
Bytecode:
0000000: b200 0499 0008 2a04 b800 432a b800 44b8
0000010: 0045 ac
Stackmap Table:
same_frame(@11)
at org.lwjgl.system.MemoryUtil.getMarkOffset(MemoryUtil.java:3013)
at org.lwjgl.system.MemoryUtil.<clinit>(MemoryUtil.java:115)
... 5 more
nexus@MacBook-Pro-Igor libs %
Other changed settings:
Main gradle set lwjgl3 - api "com.badlogicgames.gdx:gdx-backend-lwjgl3:$gdxVersion"
Gradle desktop - sourceCompatibility = 1.8
AndroidManifest.xml - activity - android:exported="true"
DesktopLauncher.java:
package com.nexlab.a3.desktop;
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application;
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration;
import com.nexlab.a3.A3;
public class DesktopLauncher {
public static void main (String[] arg) {
Lwjgl3ApplicationConfiguration config = new Lwjgl3ApplicationConfiguration();
new Lwjgl3Application(new A3(), config);
}
}
The "Start" button in the IDE starts normally (there I also specify the parameter - -XstartOnFirstThread)
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
