【问题标题】:Missing dependency FreeTypeFontGenerator in fat jar packaged with gradlew使用 gradlew 打包的 fat jar 中缺少依赖项 FreeTypeFontGenerator
【发布时间】:2020-02-23 00:46:33
【问题描述】:

我正在用

打包一个jar文件
gradlew desktop:dist

使用 java 1.8 (openjdk) 运行时

java -jar desktop-1-0.jar

引发 FreeTypeFontGenerator 类的 ClassNotFoundException。整个 Stacktrace 如下

java -jar desktop-1.0.jar 拿起_JAVA_OPTIONS:-Xmx512M 线程“LWJGL 应用程序”com.badlogic.gdx.utils.GdxRuntimeException 中的异常: java.lang.NoClassDefFoundError: com/badlogic/gdx/graphics/g2d/freetype/FreeTypeFontGenerator 在 com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:135) 引起:java.lang.NoClassDefFoundError: com/badlogic/gdx/graphics/g2d/freetype/FreeTypeFontGenerator 在 com.mygdx.tools.FontLoader.loadFont(FontLoader.java:13) 在 com.mygdx.stages.hud.ClientHud.(ClientHud.java:42) 在 com.mygdx.stages.hud.StartmenuHud.joinButtonClicked(StartmenuHud.java:67) 在 com.mygdx.stages.hud.StartmenuHud.access 100 美元(StartmenuHud.java:16) 在 com.mygdx.stages.hud.StartmenuHud$2.touchDown(StartmenuHud.java:47) 在 com.badlogic.gdx.scenes.scene2d.InputListener.handle(InputListener.java:57) 在 com.badlogic.gdx.scenes.scene2d.Actor.notify(Actor.java:188) 在 com.badlogic.gdx.scenes.scene2d.Actor.fire(Actor.java:158) 在 com.badlogic.gdx.scenes.scene2d.Stage.touchDown(Stage.java:281) 在 com.badlogic.gdx.backends.lwjgl.LwjglInput.processEvents(LwjglInput.java:357) 在 com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:221) 在 com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:128) 引起:java.lang.ClassNotFoundException:com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator 在 java.net.URLClassLoader.findClass(URLClassLoader.java:381) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:424) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 12 更多

我已经在 libgdx wiki 中描述的 FreeTypeFont 项目根目录中的 build.gradle 文件中包含了必要的依赖项。

我也刷新了项目依赖(右键项目-> Gradle -> Refresh Gradle Dependencies) 并重建项目。

【问题讨论】:

    标签: gradle jar libgdx gradlew freetype


    【解决方案1】:

    我的解决方案是添加

    implementation "com.badlogicgames.gdx:gdx-freetype:$gdxVersion"
    

    在我的 build.gradle 文件的桌面部分下。 我尝试了这个,因为 controler 模块的导入看起来有点相似。

    我不知道为什么没有记录,但是在刷新所有 gradle 依赖项(右键单击项目 -> Gradle -> 刷新 Gradle 依赖项)并重建项目后,我能够运行打包的 jar没有任何问题。

    【讨论】:

      猜你喜欢
      • 2016-02-08
      • 1970-01-01
      • 1970-01-01
      • 2017-07-19
      • 1970-01-01
      • 2013-10-11
      • 2020-03-25
      • 2013-12-09
      • 1970-01-01
      相关资源
      最近更新 更多