guolei
guolei
你好,我们app不仅使用arouter,而且原来还有一个plugin使用transform,在更换了你的ArouterPlugin后,将我们原来的transform也按照一样的写法进行了重构(我看官网也推荐这个方法),但问题出在: toTransform方法的output路径是agp注入的: 经我调试这个注入的路径是:`/build/intermediates/classes/xxx/ALL/claases.jar` 当第一个plugin将所有的class,jar处理后,都输出到/build/intermediates/classes/xxx/ALL/class.jar,而这个jar,将作为第二个plugin执行时的唯一的allJars输入,问题就出在这里,而此时output依然是.../ALL/claases.jar,这就导致对第二个(理论上是后续所有)的plugin来说,存在一个jar既是输入,也是输出,当遍历进行class复制时,output会覆盖input,导致input为空,进而后续操作都失败,最终得到一个空的classes.jar。 之前很少写插件,不太熟悉这块,我找了很久没有找到解决方案,所以临时将我的插件中插入了如下逻辑: ``` kotlin fun backupInputJars(inputJars: List, outputFile: File, backupName: String): List { return mutableListOf().apply { addAll(inputJars) forEachIndexed { i, jarFile -> if (jarFile.absolutePath == outputFile.absolutePath) {...