将libgdx项目及其依赖项导出为Android库

3
我有两个独立的Android项目。其中一个是普通的Android应用程序,另一个是libgdx项目。我的目标是将libgdx项目编译为Android库到aar文件中,以便我可以在非libgdx的正常Android项目中使用它(我将从普通的Android项目开始libgdx游戏的活动)。 libgdx项目由几个模块组成(我只使用android和desktop模块),所以在我的libgdx项目中可以找到3个模块:android、desktop和core(基本上整个游戏的代码都驻留在这里)。当在Android上编译和运行游戏时,android模块会启动,但它使用core模块作为依赖项。 尝试将libgdx项目转换为Android库项目并将其编译为aar时,似乎缺少所需的依赖项(例如core模块以及其他一些依赖项)。 如何从libgdx项目创建具有所有必需依赖项的aar文件?

你找到解决方案了吗? - Raimund Wege
1个回答

1
最终我成功解决了问题。
首先,我的第一印象是误导性的,我遇到的问题不是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文件夹中,一旦您编译库项目,这些依赖项将被包含在内。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接