直接原因
先直接说原因,小部分是因为配置错误导致的,注意查看下面的步骤即可,另一大部分是因为Java
和Kotlin
混编的问题,lombok
和kapt
冲突,其实你用了kotlin
基本不需要用lombok
,多此一举!所以可以二选一:纯Java+lombok
或者Java+Kotlin+去除lombok
,如果你是个倔棒子你可以往下看!!!
问题
主要是想节省实体类的set
、get
等方法,使用lombok
报错如下:
解决方案一
由于Android
的限制,在Android
中使用lombok
兼容极其麻烦,如果你只是想减少set
、get
等代码可以直接使用kotlin
的data 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
中使用它,那么网上搜到的最全的解决方案,Android
中lombok
需要版本一一对应,即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了,自己搜
最后
其实这样应该很多人都解决不了找不到符号的问题,部分人可以解决,那是因为你Kotlin
和Java
混编的问题,去除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'//注意这两个都要导入
}