XmlClassGuard icon indicating copy to clipboard operation
XmlClassGuard copied to clipboard

子模块implementation的模块无法混淆

Open VocientLuo opened this issue 2 years ago • 4 comments

image 127行应该是直接写入names变量。否则会有这个问题。

VocientLuo avatar Jan 04 '24 07:01 VocientLuo

没有问题,主module无法间接引用子module implementation依赖的库,只有api才可间接依赖

liujingxing avatar Jan 04 '24 10:01 liujingxing

没有问题,主module无法间接引用子module implementation依赖的库,只有api才可间接依赖

但是文件名和路径混淆会修改到间接implementation模块中的文件。 image 可能是49行里的文件名和路径修改中,项目检索方式跟上面的不太一致。 image findLocalProject是根据路径找到项目做路径混淆,会把路径和文件名混淆。 但文件内容的class实际没做修改。

VocientLuo avatar Jan 05 '24 00:01 VocientLuo

后续有时间会修复,感谢提出

liujingxing avatar Jan 08 '24 05:01 liujingxing

根据实践,这两个地方可能还要继续优化: 1、查找项目时compileOnly也要加上。模块化开发时会有这种情况出现。模块a可能compileOnly某个本地模块 image 如果不加上这个,可能导致模块a中的xml文件没有被修改到混淆后的class引用而报错。

2、替换java中的R引用时,我加了这个: image 这样主要是为了排除掉模块a下的某个文件已经import了其他模块中的R文件,如果再import当前R文件,就会存在两个R文件导致报错。 模块化的R文件多而复杂,怎么准确的匹配到需要替换的R文件是个比较头疼的问题,也许这个设置也不能完美解决问题,但至少满足我这边的项目。可能需要从开发规范上避免这种情况出现。

VocientLuo avatar Jan 19 '24 03:01 VocientLuo