Open tribelei opened 9 months ago
这么看的话,按照官方写法2个以上插件都会出问题,每次输入和下一次输入都是这个classes.jar,这个肯定是不合理的;
目前春运ing没电脑,或许可以将每个插件输出加一个限定名称,比如arouter插件限定输出为 classes_arouter.jar 下次transform应该可以识别到这个输入; 待验证 哈哈
这么看的话,按照官方写法2个以上插件都会出问题
是的,这是问题的核心,我可以用这种方式避开,但任何两个及以上采用这种方案的三方插件都会导致问题
我尝试将output设定目录:output.set(file)
,会在运行时抛出异常property 'output' is final and cannot be changed any further
,不能被二次修改...局面一时很难破解...
节前这个逼码就先写到这了,有验证或结论及时分享呀,春运路上注意安全~
节前这个逼码就先写到这了,有验证或结论及时分享呀,春运路上注意安全~
好的, 这个issue先不关闭、后续跟进; 节前这个逼代码就先写到这吧 哈哈🤣
xd, 还在么, 方便加个微信JailedBird,看下这个问题;我这不是很好复现; 你看下是不是task任务名称相同导致的?
下图是我同事,使用2个组合在一起的情况:用起来是没问题的;
xd, 还在么, 方便加个微信JailedBird,看下这个问题;我这不是很好复现; 你看下是不是task任务名称相同导致的?
下图是我同事,使用2个组合在一起的情况:用起来是没问题的;
我这边路径也是固定:/build/intermediates/classes/xxx/ALL/claases.jar ,请问下你这个ALL文件夹里怎么出现两个子文件夹的
你好,我们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。
之前很少写插件,不太熟悉这块,我找了很久没有找到解决方案,所以临时将我的插件中插入了如下逻辑:
但总感觉不是对的方案,所以想请教应该如何解决,感谢~