为什么libgdx资产在android子模块中

f0brbegy  于 2021-07-04  发布在  Java
关注(0)|答案(2)|浏览(333)

我使用libgdx来创建一个游戏,所有的东西都在工作,但是在gradle构建中有一些东西我不明白。
其中之一就是为什么所有的资产都在android子模块中,而不是在核心子模块中。
核心是负责所有共享代码的模块,没有资产在其中是很奇怪的。
这似乎是一个简单的问题,但这使得整个构建更加难以理解。
如果你有办法避免这种情况,我愿意接受你的建议。我会努力改变我这边的这种行为,但我不太擅长渐变配置

t30tvxxf

t30tvxxf1#

我认为 assets android项目中的目录只是惯例。根据这个答案,原因是。。。
android项目的根目录中确实有一个名为assets的特定文件夹。根据android项目的要求,文件夹必须严格命名为“assets”。因此,最好在其他项目中以同样的方式设置文件夹层次结构,这样就不必对单个平台进行更改。
但我认为应该可以移动 assets 目录,因为如果您创建一个没有android部分的项目,它也被放置在核心项目中。
移动 assets 目录的核心项目,你只需要调整你的 build.gradle 文件,并更改以下行:

//sourceSets.main.resources.srcDirs = ["../android/assets"]
sourceSets.main.resources.srcDirs = ["../core/assets"]

//project.ext.assetsDir = new File("../android/assets");
project.ext.assetsDir = new File("../core/assets");

在我的项目中,此文件位于桌面子项目中,但在其他子项目中可能有一些 build.gradle 文件也是。
要在eclipse中运行项目,可能需要在移动资产文件夹后重新链接它。有关如何执行此操作的详细说明,请参见此答案。

ie3xauqp

ie3xauqp2#

为什么资产在android项目文件夹中,而不是在core中?

因为libgdx团队决定让libgdx项目生成器把它放在那里。你可以用不同的方式设置你的项目,但我会坚持libgdx建议的项目布局。
请注意 assets 不必总是在 android 项目文件夹,具体取决于目标平台。例如,如果你不以android设备为目标,那么就不会有任何问题 android 文件夹。请随意阅读有关libgdx项目结构的更多信息。

如何更改资产文件夹的位置?

您必须编辑: ios/robovm.xml... <resources> <resource> <!-- change this path --> <directory>../android/assets</directory> </resource> ...desktop/build.gradle// ... sourceSets.main.resources.srcDirs = ["../android/assets"] // ... project.ext.assetsDir = new File("../android/assets") // ...android/build.gradle ```
// ...
sourceSets {
main {
// ...
assets.srcDirs = ['assets']
// ...

这个清单可能不完整,我认为网上也没有详尽的清单。也许这是另一个反对改变你的工作地点的理由 `assets` 文件夹。

相关问题