Gradle 可以使用已编译的 Android APK 作为依赖项吗?

Can Gradle use an already compiled Android APK as a dependency?

我不太熟悉 Android 构建过程,所以如果这个问题真的很愚蠢,我很抱歉。

无论如何,我正在为我工​​作的公司的 Android 应用程序使用 ActivityInstrumentationTestCase2 和 Robotium 编写测试代码。

公司比较大,所以过渡到Gradle的过程很慢。我想为我的测试项目使用 Gradle 以方便和将来的可维护性,但现在我正在测试的应用程序是使用 ANT 脚本和手动干预的组合构建的,所有依赖项都作为存储库中的 jar 签入.我完全没有参与那个过程,但我知道它很乱。

据我了解,Gradle 不能简单地依赖和触发另一个现有 Android 项目的构建,除非该项目也利用 Gradle。因此,除非我真的想亲身体验我们应用程序的构建过程(我们确实雇用了一些人来处理这个问题),否则我运气不好。

但是,我可以访问的是我们应用程序的调试版本。

所以我的问题是,有什么方法可以让 Gradle 使用编译的调试 APK 作为本地文件依赖项,或者 APK 不能那样工作吗?

APK 不是那样工作的;由于各种原因,您不能依赖它们。最重要的原因是代码和资源经过处理和压缩,构建它们所需的大部分原始信息在那时丢失了。

您将很难让它正常工作。如果您依赖的东西是纯 Java 库,那么如果您能以 JAR 格式获得它们,您就可以很容易地从 Gradle 项目中依赖它们。但是,如果它们是包含资源和清单条目等的 Android 项目,那么就没有编译文件格式,您可以获得与 Gradle 兼容的那些库。 Gradle 支持 Android 库的 AAR 格式,但该格式是由 Gradle 生成的,仅此而已。