Jar Libgdx导出独立桌面游戏而不必将所有资产放在同一文件夹中?

Jar Libgdx导出独立桌面游戏而不必将所有资产放在同一文件夹中?,jar,libgdx,desktop-application,executable-jar,Jar,Libgdx,Desktop Application,Executable Jar,所以这个问题并不是没有必要的,我只是在寻找一种更优雅的方式来向我的朋友们展示我做的第一个游戏 当我导出游戏时,当所有资源都在同一个文件夹中时,它肯定会工作。然而,我也注意到,当没有资源时,游戏的第一个屏幕仍然加载有背景图像的内容。因此,我的第一个屏幕(一个简单的登录屏幕)的背景图像可能与jar文件无关。当我切换到包含新资产的任何其他屏幕时,它会崩溃,因此我拥有的其他图像不在jar文件中 这种情况让我想到,可能有一种方法可以将我所有的资产放在一个jar文件中(就像我的背景图像一样),这样我将拥有一

所以这个问题并不是没有必要的,我只是在寻找一种更优雅的方式来向我的朋友们展示我做的第一个游戏

当我导出游戏时,当所有资源都在同一个文件夹中时,它肯定会工作。然而,我也注意到,当没有资源时,游戏的第一个屏幕仍然加载有背景图像的内容。因此,我的第一个屏幕(一个简单的登录屏幕)的背景图像可能与jar文件无关。当我切换到包含新资产的任何其他屏幕时,它会崩溃,因此我拥有的其他图像不在jar文件中

这种情况让我想到,可能有一种方法可以将我所有的资产放在一个jar文件中(就像我的背景图像一样),这样我将拥有一个更优雅的最终产品。有什么办法吗

我使用AssetManager,我已经尝试导入登录屏幕上导入背景图像行旁边的所有其他图像,但没有帮助。事实上,由于某些原因,当我尝试游戏甚至不包括第一个背景图像,所以它甚至在登录屏幕之前崩溃

如果有人有这样的经验或知识,能够为我指明正确的方向,我将不胜感激


更新:到目前为止,问题似乎只和很少的图像和声音有关。因此,出于某种原因(可能是大小或维度),AssetManager似乎只需要运行jar的同一目录中的一些资产。

如果要从桌面模块导出独立jar

Libgdx使用gradle进行项目构建,所以希望您使用gradle和IntellijIDEA或androidstudio作为IDE

开放式终端

视图->工具窗口->终端或Alt+F12

在窗口上运行命令

gradlew desktop:dist
在mac上运行命令

./gradlew desktop:dist
它会将您的所有资产从您的资产文件夹的android模块到您的jar

您可以在桌面模块中找到您的jar

编辑

您还可以使用工件创建jar

文件->项目结构->工件->添加(+)->Jar->来自模块和依赖项->

模块:桌面 主类:DesktopLauncher

那好吧

在OutputLayout选项卡->添加(+)->目录内容的副本->选择您的Android资产文件夹->应用->确定


然后构建->构建工件。->desktop.jar->build

我在项目的主目录下,没有找到gradlew:command。我应该为它安装一些东西吗?(使用mac btw)nvm只需阅读此内容,现在就开始尝试我正在窗口上使用上述命令。您是否尝试了链接。失败:生成失败,出现异常。*错误:任务的执行失败:核心:compileJava'>编译失败;有关详细信息,请参见编译器错误输出。我的窗口中的dektop module->build->libs->desktop-1.0.jar。检查你的电脑是否在mac中