java - 为什么 libGdx Asset 位于 android 子模块中

标签 java gradle libgdx

我使用 libGdx 来创建游戏,一切正常,但在 gradle 构建中有些东西我不明白。

其中之一就是为什么所有资源都在 android 子模块中而不是在核心子模块中。

Core 是负责所有共享代码的模块,其中没有 Assets 很奇怪。

这似乎是一个简单的问题,但这使得整个构建更加难以理解。

如果您有避免这种情况的解决方案,我愿意接受建议。我会尝试改变我这边的行为,但我在 gradle 配置方面不太熟练

最佳答案

为什么 assets 位于 android 项目文件夹中,而不是位于 core 中?

嗯,因为 libGDX 团队决定使用 Libgdx 项目生成器将其放在那里。您可以以不同的方式设置您的项目,但我会坚持由libGDX建议的项目布局。

请注意,assets 不必始终位于 android 项目文件夹中,取决于您的目标平台。例如,如果您不定位 Android 设备,则不会有 android 文件夹。请随时阅读 Structure of LibGDX projects 上的更多内容.

如何更改 assets 文件夹的位置?

您必须编辑:

  • ios/robovm.xml
...
<resources>
  <resource>
    <!-- change this path -->
    <directory>../android/assets</directory>
  </resource>
  ...
  • 桌面/build.gradle
// ...
sourceSets.main.resources.srcDirs = ["../android/assets"]
// ...
project.ext.assetsDir = new File("../android/assets")
// ...
  • android/build.gradle
// ...
sourceSets {
    main {
        // ...
        assets.srcDirs = ['assets']
// ...

这个列表可能并不完整,而且我认为网上也没有详尽的列表。也许这是反对更改 assets 文件夹位置的另一个原因。

关于java - 为什么 libGdx Asset 位于 android 子模块中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63761911/

相关文章:

android - Libgdx如何获取文本的总宽度? (位图字体)

java - Android - 源端口 800 的 DatagramSocket 不发送

java - 错误膨胀类 com.google.android.material.button.MaterialButton

gradle - Groovy和Junit

gradle - 使用Artifactory Gradle插件时无法使Spring Boot的buildInfo()工作

java - libGDX 3D 阴影

java - 序列化具有双向引用的对象时如何避免堆栈溢出?

java - UTC 的 Joda DateTime getMillis() 不正确,而是返回本地毫秒

java - 使用 jackson 转换时 POJO 具有空值

java - 如何使用gwt-gradle输出静态内容?