2

我正在更新我们的 Android 构建过程以使用 gradle。我们有特定于客户端的应用程序 - 即单个代码模板,用作所有动态创建的应用程序的基础。

为了构建应用程序,我遍历一个 CSV 文件以获取每个应用程序的详细信息。然后我复制源模板,在编译应用程序之前插入客户的名称、图像等。这在当前系统中运行良好。在 gradle 版本中,我成功地遍历了行并为每个行创建了具有正确详细信息的应用程序源。但是,当我尝试实际构建应用程序时,它会失败并显示以下消息:

Project with path ':xxxxxx' could not be found in root project 'android-gradle'.

通过阅读文档,我了解到这是因为该项目在配置阶段不存在,因为它直到执行阶段才创建。但是,我无法找到解决此问题的方法。有没有人设法实现类似的目标?或者也许是对更好方法的建议?

4

2 回答 2

4

一种选择是编写脚本settings.gradle。与任何其他 Gradle 脚本一样,您可以使用 Groovy 的全部功能。稍后您将无法再更改构建由哪些项目组成。请注意,settings.gradle每次调用 Gradle 都会对其进行评估,因此评估需要快速。

于 2013-10-25T06:33:49.680 回答
0

虽然彼得的回答为我指明了正确的方向,但它最终不是一个可行的解决方案。不幸的是,要构建近 200 个应用程序,为每个应用程序创建一个源代码副本的开销太大,并且 gradle 总是耗尽内存。

我所做的是利用 Android 插件的产品风味功能。为 CSV 中的每一行动态添加一个非常简单productFlavor(我可以在build.gradle而不是中执行此操作settings.gradle),并且我只是将 设置srcDir为指向每个图像的相关图像等。

于 2013-10-29T05:32:02.483 回答