我使用 gradle 构建一个需要外部 jar 文件进行构建的 Android 项目(“projectA”)。
我有第二个项目(在这种情况下为 Unity3d,所以我们称之为“projectU”),它创建一个 jar 文件等等。这个外部项目是通过一个单独的 build.gradle 文件构建的。
在通过 gradle 构建 projectA 之前,我构建了 projectU。然后,将几个文件从 projectU 的完成构建复制到 projectA 的 gradle Android 项目目录中。
需要从projectU复制到projectA的文件:
1.) 进入 projectA/assets/的项目数据文件
2.) 进入 projectA/src/main/jniLibs/的本地库
3.) 一个名为 unity-classes.jar 的文件进入 projectA/libs/unity-classes.jar
当我手动复制这些文件然后构建 projectA 时,它运行良好。
我现在想通过 Gradle 自动执行此操作。我有一个 projectU 的 build.gradle 和一个 projectA 的 build.gradle。
projectA 中的一个任务是将上面提到的文件从 projectU 复制到 projectA 的项目目录中。
当我通过命令行手动构建projectU,然后在projectA之后,它完美地工作:
毕业:projectU:build
毕业:项目A:组装
但是,当我在 projectA 的 build.gradle 中将 projectU 设置为 projectA 的依赖项时,projectA 的构建会失败,因为它无法“看到”“unity-classes.jar”文件。就好像该文件没有足够早地出现在构建目录中。
如果我第二次运行相同的构建(之前没有清理),它工作正常,因为 unity-classes.jar 文件已经存在并且由 projectA 的 gradle 构建找到。
问题:
1.) 如何确保我的 projectU 构建以及 projectA 中复制文件的任务在 projectA 中的任何 android 任务(或评估?)之前运行?
或者
2.) 我必须在哪里复制 unity-classes.jar 文件以便将其包含到 projectA 的 java 编译中?
还是有不同的方法?
谢谢!
最佳答案
是的,你可以这么做。我在使用 Gradle 之前做过,但已经很久了,我不太记得了。去年我一直在使用 Maven,它也可以从系统中加载文件。一个好的依赖管理系统为您提供了这种灵 active 。
是否 this link对你有帮助吗?
关于android - 如何使 Android Gradle 项目使用复制到 libs 文件夹中的 jar 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25185820/