注意:Android Studio 更改包名,会更改 implementation

作者:vkvi 来源:ITPOW(原创) 日期:2020-5-9

Android Studio 中,有一个名,注意是包,不仅仅是普通的文件夹,名称为 itpow,假设完整的包名为:com.itpow.android

同时在 build.gradledependencies 下有一个 implementationimplementation files('libs/ms-excel-itpow-3.5.jar')

当我们在实施 Refactor -> Rename 的时候,选中 Search in comments and strings。

注意:Android Studio 更改包名,会更改 implementation

会将:implementation files('libs/ms-excel-itpow-3.5.jar') 中的 itpow 改名,改了之后就出错,因为文件名不是这个,引用自然出错了嘛:Expecting a file or a directory。这提示还真有点莫名其妙,你就说找不到对应的文件难道不清晰明了?非说什么希望是个文件或者目录。

这个匹配有点生硬呀。那按照上面的说法,我的注释中的 itpow、字符串变量引号中的 itpow 也会被改?

我们再来研究研究:

1、像这类字符串、注释,匹配是比较生硬,但是也遵从两个原则:一是大小写敏感,二是全字匹配。也就是说 zoo 匹配 zoo、zoo-park,但不匹配 ZOO、zoom。

2、变量、包名、类名这些不会生硬地匹配,比如 com.cftea.itpow,这里的 itpow 就不会被咱们上面的实验改到,因为它能够识别出来这不相干。

3、这里字符串、注释匹配功能是有 BUG 的。

关于这个 BUG

我在某 java 中写了这个字符串、备注,它一直无法找到,直到我 import 了这个包,然后才找到,那么理论上,我移除这个包的 import,应该继续找不到了,但是它仍然能找到。

继续,既然仍然能继续找到,我就继续做实验吧,当前找到了一个变量中的字符串、一个注释、一个文件名,但是当我把变量中的字符串删掉,不让它找到,再预览,他的确没有找到了,但是它却又冒出了 values 中的两个文件。此实验已经多次、认真、小心进行,绝无其他改变,可以看出这是个 BUG,而且类似的 BUG 还有。

Android Studio Rename 的 BUG

 

相关文章