2017-11-21 2 views
0

私はLWJGLを使用するプロジェクトに取り組んでいます。我々は、この行は、ネイティブライブラリは、このビルドを使用して、Gradleので引き込まれている3.1.4を使用してGradleのプロジェクトを作成するときまでトリップする、しかしLWJGL 3.1.4でstackPush()を使用する際のトラブル - NoSuchMethodError

val stack: MemoryStack = stackPush 

バージョン3.1.3でこの行を実行している問題はありません。 Gradleの:

import org.gradle.internal.os.OperatingSystem 

version '1.0-SNAPSHOT' 

apply plugin: 'scala' 

switch (OperatingSystem.current()) { 
    case OperatingSystem.WINDOWS: 
     project.ext.lwjglNatives = "natives-windows" 
     break 
    case OperatingSystem.LINUX: 
     project.ext.lwjglNatives = "natives-linux" 
     break 
    case OperatingSystem.MAC_OS: 
     project.ext.lwjglNatives = "natives-macos" 
     break 
} 

project.ext.lwjglVersion = "3.1.4" //if this is 3.1.3 it works 

repositories { 
    mavenCentral() 
} 

dependencies { 
    compile "org.lwjgl:lwjgl:$lwjglVersion" 
    compile "org.lwjgl:lwjgl-opencl:$lwjglVersion" 
    runtime "org.lwjgl:lwjgl:$lwjglVersion:$lwjglNatives" 
} 

と、私は次のエラーを取得する:

java.lang.NoSuchMethodError: java.nio.ByteBuffer.limit(I)Ljava/nio/ByteBuffer; 
at org.lwjgl.system.MemoryAccess$MemoryAccessorUnsafe.getCapacityOffset(MemoryAccess.java:159) 
at org.lwjgl.system.MemoryAccess$MemoryAccessorUnsafe.<clinit>(MemoryAccess.java:132) 
at org.lwjgl.system.MemoryAccess.getInstance(MemoryAccess.java:31) 
at org.lwjgl.system.MemoryUtil.<clinit>(MemoryUtil.java:62) 
at org.lwjgl.system.MemoryStack.<init>(MemoryStack.java:60) 
at org.lwjgl.system.MemoryStack.create(MemoryStack.java:81) 
at org.lwjgl.system.MemoryStack.create(MemoryStack.java:70) 
at java.lang.ThreadLocal$SuppliedThreadLocal.initialValue(ThreadLocal.java:284) 
at java.lang.ThreadLocal.setInitialValue(ThreadLocal.java:180) 
at java.lang.ThreadLocal.get(ThreadLocal.java:170) 
at org.lwjgl.system.MemoryStack.stackGet(MemoryStack.java:603) 
at org.lwjgl.system.MemoryStack.stackPush(MemoryStack.java:612) 
at JavaFXCanvas.main(JavaFXCanvas.java:16) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:498) 
at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389) 
at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:498) 
at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767) 
[LWJGL] [MemoryAccessor] Unsupported JVM detected, this will likely result in low performance. Please inform LWJGL developers. 

私の疑惑は、どこか見当違いのdllが問題を引き起こしているが、それを追跡運を持っていなかったということです。他の誰かが3.1.4のLWJGLで同様の問題に遭遇しましたか?

ありがとうございます!

答えて

0

私は同じエラーを持っていたし、スラックSpasiからのコメント:

the problem is https://bugs.openjdk.java.net/browse/JDK-4774077 , workaround: either use Java 9 or the 3.1.4 snapshot 8 (it's identical to 3.1.4 except compiled with Java 8)

+0

多くのおかげで、それはまさに私が必要なソリューションです! –

関連する問題