gpt4 book ai didi

java - 将同级项目资源添加到 Android 资源中,无需紧密耦合

转载 作者:太空宇宙 更新时间:2023-11-04 15:00:26 25 4
gpt4 key购买 nike

问题

我正在使用 libGDX 开发一款游戏,其项目结构类似于:

Root project 'gdx-play'
+--- Project ':android'
+--- Project ':core'
\--- Project ':desktop'

子项目androiddesktop依赖于core

我想将我的 Assets 保留在 core 项目的资源文件夹中。依赖于 desktop 中的 core 工作得很好,因为 libGDX 很乐意从打包的 JAR 根加载资源。然而,在 Android 上,libGDX 期望资源位于打包 Apk 的 assets 文件夹中。

如何最好地配置我的多项目构建而不使项目之间紧密耦合?

可能的解决方案

一个

将资源存储在 core 项目的 assets 子文件夹中,这样它们就会神奇地出现在 Apk 的 assets 文件夹中已打包。

两个

core发布两个单独的JAR;一种有类(class),一种有资源。或者将 core 项目分成两个。然后,在 android 中,以某种方式将资源 JAR 中的项目添加到 Android 插件的 assets SourceDirectorySet 中,并从类路径中删除该 JAR(以便它的项目不会被多余地包含到 APK 中)。我不知道这是否危险。

android-library 插件添加到 core 项目并导出 AAR。我确信这与 android 最为兼容,但是,我不知道如何为 desktop 项目获取正常的 JAR。

最佳答案

我会采取两种方法之一。 @jake-wharton 在 similar question 中从 APK 创建 jar 的方法之一这基本上涉及为库的每个发布变体创建 JAR 任务(跳过调试变体)。

或者我会将 Assets 拉入它们自己的 Android 库,例如 core-assets,只留下 core 中的 java 代码。这种方法的好处之一是纯 Java 项目更容易彻底测试。目前 Android 的测试支持还有些欠缺。

关于java - 将同级项目资源添加到 Android 资源中,无需紧密耦合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22622952/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com