将libgdx项目导出为包含依赖项的Android库

时间:2017-04-03 14:19:42

标签: android module libgdx export

我有两个独立的Android项目。一个是常规Android应用程序,另一个是libgdx项目。 我的目标是能够将libgdx项目作为Android库编译成aar文件,所以我可以在常规的非libgdx Android应用程序中使用它(我将从常规的Android项目启动libgdx游戏的活动) 。
libgdx项目由几个模块组成(我只使用androiddesktop模块),所以在我的libgdx项目中我可以找到3个模块:android,{{1} }和desktop(基本上整个游戏的代码都在这里)。在Android上编译和运行游戏时,core模块会启动,但它会使用android模块作为依赖项。

当尝试将libgdx项目更改为Android库项目并将其编译为aar时,似乎它缺少所需的依赖项(如core模块,以及其他一些依赖项。)

如何从libgdx项目创建一个具有所有必需依赖项的aar文件?

1 个答案:

答案 0 :(得分:0)

所以最终我设法找到解决问题的方法 让我们首先看到我的第一印象是误导,我遇到的问题不是libgdx特定的问题,而是gradle"问题"。
简而言之,其背后的原因是aar / jar文件不包含传递依赖项,并且没有pom文件来描述库使用的依赖项。 要克服此行为,您需要以某种方式指定项目中的依赖项。您可以选择两种方法:

第一种方法:
您可以使用中央存储库(例如JCenter),并将项目发布为库。在这种情况下,gradle将能够使用包含依赖项列表的pom文件下载依赖项。

第二种方法:
您需要手动将所有依赖项复制到libs文件夹。通过编写一个小的gradle任务,你可以相对容易地做到这一点:

task copyCompileDependenciesToLibs(type: Copy) {
    def libsPath = project.projectDir.toString() + "/libs"

    from configurations.compile
    into libsPath
}

此代码段将所有依赖项复制到libs文件夹,编译库项目后,将包含依赖项。