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

将libgdx项目导出为包含依赖项的Android库,android,module,libgdx,export,Android,Module,Libgdx,Export,我有两个独立的Android项目。一个是常规Android应用程序,另一个是libgdx项目。 我的目标是能够将libgdx项目作为Android库编译成aar文件,这样我就可以在常规的、非libgdx的Android应用程序中使用它(我将从常规的Android项目开始libgdx游戏的活动)。 libgdx项目由几个模块组成(我只使用android和desktop模块),因此在我的libgdx项目中,我可以找到3个模块:android、desktop和core(基本上整个游戏的代码都在这里)。

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

当试图将libgdx项目更改为Android库项目并将其编译为aar时,它似乎缺少所需的依赖项(除了一些其他依赖项之外,还缺少
核心
模块)


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

因此,我最终设法找到了解决问题的方法。
让我们从一个事实开始,我的第一印象是误导性的,我遇到的问题不是一个
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文件夹,编译库项目后,这些依赖项将包括在内。

找到解决方案了吗?