Android和java 错误: 找不到符号符号: 方法 xx 位置: 类型为xx的变量

1、给Android项目新增了功能之后,编译项目报错(见下图一),定位第一个类的报错位置(见下图二),进入userListBean.setCode(200)方法(见下图三),没有别的异常,猜测可能是该类使用了lombok的相关注解(@Getter和@Setter)导致的问题(验证后发现就是lombok的相关注解导致的问题),定位第二个和第三个类的报错位置(见下图四和下图五),也没有别的异常,猜测可能是该类使用了lombok的相关注解(@Getter和@Setter)导致的问题(验证后发现就是lombok的相关注解导致的问题)。

 

2、使用lombok是为了省略类的getter/setter/构造器/toString等常用方法,使类看起来更整洁,使用这个注解配套的在Android Studio(或IDEA)上要下载lombok插件来支持这种功能,但是Android Studio(或IDEA)上下载的插件可能不是最新版本的plugin,可能与新版本的lombok依赖的jar包有冲突。

如何解决:

方案一
现在lombok plugin官网上的plugin插件还是2020年的,有点旧了,可能不兼容新版本的lombok依赖的jar包,所以把lombok依赖进行降级处理。

lombok降级之前的依赖版本是1.18.24

compileOnly 'org.projectlombok:lombok:1.18.24'
annotationProcessor 'org.projectlombok:lombok:1.18.24'

lombok降级之后的lombok依赖版本是1.16.22

compileOnly 'org.projectlombok:lombok:1.16.22'
annotationProcessor 'org.projectlombok:lombok:1.16.22'

如果方案一没有解决你的问题,请看方案二。

方案二

现在plugin官网上的plugin插件还是2020年的,有点旧了,可能不兼容新版本的lombok依赖的jar包,所以新加的功能的UserListBean和AddressBean实体类不要使用@Getter和@Setter注解了(只修改新加的功能lombok的相关注解造成的问题,不要动以前的功能),直接使用getter/setter方法,就没有问题了。

猜你喜欢

转载自blog.csdn.net/NakajimaFN/article/details/127015051