最全方案解决Android Studio中使用lombok插件错误: 找不到符号的问题

发布于:2024-10-16 ⋅ 阅读:(10) ⋅ 点赞:(0)

直接原因

先直接说原因,小部分是因为配置错误导致的,注意查看下面的步骤即可,另一大部分是因为JavaKotlin混编的问题,lombokkapt冲突,其实你用了kotlin基本不需要用lombok,多此一举!所以可以二选一:纯Java+lombok或者Java+Kotlin+去除lombok,如果你是个倔棒子你可以往下看!!!

问题

主要是想节省实体类的setget等方法,使用lombok报错如下:
在这里插入图片描述

解决方案一

由于Android的限制,在Android中使用lombok兼容极其麻烦,如果你只是想减少setget等代码可以直接使用kotlindata class
示例

data class KotlinTest(
    var name: String = "",
    var sex: String = "",
    var mobile: String = "",
    var age: String = "",
    var weight: String = "",
    var height: String = "",
    var email: String = "",
    var hobby: List<String> = listOf(),
) : BaseObservable() {
    constructor() : this("张三", "", "", "", "", "", "", listOf())
    constructor(name: String) : this(name, "", "", "", "", "", "", listOf())
}

如何使用这个实体类不用说了吧?

非要使用lombok

如果你非要在Android中使用它,那么网上搜到的最全的解决方案,Androidlombok需要版本一一对应,即Android Studio版本要对应lombok版本,具体方案如下:

查看Android Studio版本

记住并copy我选中的部分
在这里插入图片描述

查找对应的lombok插件

插件主页:https://plugins.jetbrains.com/plugin/6317-lombok/versions
请注意选择Android Studio并下载
在这里插入图片描述

安装离线插件包

下载上面的插件包,然后在Android Studio的setting ——> Plugins ——> 安装离线插件包,具体如图,然后重启AS
在这里插入图片描述

最后在各个module中导入依赖

gradle导入如下,然后sync now即可

dependencies {
	compileOnly 'org.projectlombok:lombok:1.18.34'
	annotationProcessor 'org.projectlombok:lombok:1.18.34'
}

使用

不BB了,自己搜

最后

其实这样应该很多人都解决不了找不到符号的问题,部分人可以解决,那是因为你KotlinJava混编的问题,去除Java中的kapt的依赖即可

plugins {
    id 'com.android.application'
    id 'org.jetbrains.kotlin.android'
    id 'kotlin-kapt'//去除各个module模块下的这个
}

尝试古老的解决方案

在根项目的build.gradle中加入apt

dependencies {
	//这个东西基本现在已经不用了
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'
    }

然后在各module下的build.gradle中引入kapt

plugins {
    id 'com.android.application'
    id 'org.jetbrains.kotlin.android'
    id 'kotlin-kapt'//加上这个
}

最后导入依赖

dependencies {
	//lombok
	compileOnly 'org.projectlombok:lombok:1.18.34'
	annotationProcessor 'org.projectlombok:lombok:1.18.34'//注意这两个都要导入
	kapt 'org.projectlombok:lombok:1.18.34'//注意这两个都要导入
}

网站公告

今日签到

点亮在社区的每一天
去签到