我想要混淆一个我编写的游戏。我将其精简为一个非常基本的项目,以说明问题(该项目可以在此找到:https://github.com/dschneider/libgdx-proguard-test)。您需要安装ant并在终端中运行make desktop来编译和混淆项目。当尝试运行混淆后的jar文件时会出现以下错误:
Exception in thread "main" java.lang.NoSuchMethodError: getPointer
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1894)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1851)
at java.lang.Runtime.load0(Runtime.java:795)
at java.lang.System.load(System.java:1062)
at org.lwjgl.Sys$1.run(Sys.java:70)
at java.security.AccessController.doPrivileged(Native Method)
at org.lwjgl.Sys.b(Sys.java:66)
at org.lwjgl.Sys.c(Sys.java:95)
at org.lwjgl.Sys.<clinit>(Sys.java:112)
at org.lwjgl.openal.AL.<clinit>(AL.java:59)
at com.badlogic.gdx.backends.openal.OpenALAudio.<init>(OpenALAudio.java:70)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.<init>(LwjglApplication.java:82)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.<init>(LwjglApplication.java:64)
at com.libgdxproguard.test.Main.main(Main.java:14)
我有点不明白。当我告诉ProGuard不要混淆代码时,它后来运行得很好。显然,某些不应该被混淆的东西被混淆了,但我不确定如何解决这个错误。