android - 如何使 Android Gradle 项目使用复制到 libs 文件夹中的 jar 文件?

标签 android gradle

我使用 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/

相关文章:

java - 在 SQLite 数据库中添加新列

android - 通过 "android.intent.action.SEND" Intent 启动服务

java - 创建时调用的 JNI 方法对象

安卓工作室 3.0 错误 : android-apt is incompatible

gradle - 如何在Gradle中的代码生成任务之前编译一个Kotlin类

java - Android 设备上是否有唯一的启动 session ID 或计数?

Android:将 Activity 上下文获取到数组适配器类中

java - 使用真实设备在Flutter中调试第一个应用程序时出错

Gradle:复制时为重复文件指定合并策略

Android Studio ClassCastException : com. worklight.wlclient.WLPersistentCookieStore