Android插件的开发,在网上有很多资料,如:Android Gradle 插件开发入门指南:https://juejin.cn/post/6887581345384497165,最近由于工作需要,开发了一个jacoco与记录用例执行顺序的插件,整体功能开发没有问题,但是在应用到项目的时候,就出错了。被测试的项目是个多模块的项目,原则上需要对app和libraries都添加插件,不然library中的代码没有插入jacoco的桩,也没有记录用例执行顺序的桩,无法达到目的。但是,在将插件引用到library中时,就会报如下错误:
Transforms with scopes '[SUB_PROJECTS, EXTERNAL_LIBRARIES]' cannot be applied to library projects.
分析了一下,原来是TransformManager中的scopes的问题,具体定义如下:
作用域 |
描述 |
TransformManager.SCOPE_FULL_PROJECT |
作用于整个工程,包括当前工程、所有子工程及外部依赖库 |
TransformManager.PROJECT_ONLY |