Constructor (see InfoEntity:46) has been changed after generation.
Please either mark it with @Keep annotation instead of @Generated to keep it untouched,
or use @Generated (without hash) to allow to replace it.
分析
这条信息是关于代码生成和代码变更的警告。当你使用某些工具(如注解处理器、代码生成库等)来自动生成代码时,这些工具通常会为生成的代码添加某种标记,以便区分哪些代码是自动生成的,哪些是由开发者手动编写的。
在这个警告中:
@Generated 注解通常用于标记生成的代码。当工具再次运行时,如果它检测到带有 @Generated 注解的代码,它可能会选择替换或重新生成这部分代码。
@Keep 注解则通常用于指示代码生成工具或某些优化工具(如 ProGuard)保留这部分代码,即使它看起来是自动生成的。
警告信息表明,某个构造函数(在 InfoEntity 类的第 46 行)在生成之后被更改了。这意味着,如果再次运行代码生成工具,这个构造函数可能会被工具替换掉,因为它仍然带有 @Generated 注解。
为了解决这个问题,你有两个选择:
如果你想要保留对这个构造函数的更改,不希望它再次被代码生成工具覆盖,你应该使用 @Keep 注解来替换 @Generated 注解。这样,代码生成工具就会知道这个部分是你希望保留的,并且不会尝试替换它。
如果你不在乎这个构造函数被替换,并且想要允许代码生成工具在需要时替换它,你可以使用不带哈希的 @Generated 注解。不带哈希的 @Generated 注解意味着这个注解的内容可能在每次代码生成时都会有所不同(比如包含了一个时间戳或版本号),这样工具就可以识别出这个部分是否需要更新。
简而言之,这个警告是在告诉你,你更改了一个生成的构造函数,你需要决定是保留这个更改(使用 @Keep),还是允许它被代码生成工具替换(使用不带哈希的 @Generated)。
最简单的解决方式
把build自动生成的代码删除干净,重新生成就可以啦!!!!