我有一个基于gradle的Android项目,其中包含4个子模块——两个库和两个应用程序。我试图通过将一些共享代码/配置移动到顶级build.gradle文件中,并使用subprojects {}
使该代码可用于每个子模块,来简化每个子模块的build.gradle文件。
文件系统结构如下:
Root
|- App1/
|- App2/
|- Lib1/
|- Lib2/
|- build.gradle
|- settings.gradle
问题在于,如果我在子项目中添加一个 android {}
部分,那么 gradle 任务会失败。例如,这是我的顶级 build.gradle 文件:
问题是,如果我向子项目添加一个 android {}
部分,则 Gradle 任务会失败。例如,这是我的顶层 build.gradle 文件:
subprojects { project ->
android {
buildToolsVersion "20.0.0"
}
}
运行gradle返回以下结果:
出错了: 在根项目“android”中评估时出现问题。 找不到方法 android(),在根项目“android”上的参数[build_7dngpra6ldok366maq0on77r7e_run_closure3_closure5@43d95624]。
我搜索了类似的帖子,有人建议在每个子项目中添加一行apply plugin: 'android'
以公开Gradle抱怨缺失的android()
方法。 但是,该解决方案对我无效,因为它会将该行添加到库项目中,这需要使用apply plugin:'android-library'
代替。
当您在同一个项目中使用应用程序和库时,是否有一种方法可以在subprojects {}
中使用android {}
呢?