升级Android Studio 3.1后出现InnerClass注解缺失警告求助
嘿,这个问题我之前升级Android Studio 3.1的时候也碰到过!当时在Kotlin+Java混合项目里折腾了好一会儿,给你分享几个亲测有用的解决办法:
解决InnerClass注解缺失EnclosingMember的警告问题
这个警告本质是Android Gradle Plugin(AGP)3.1.x版本和Kotlin插件配合时的兼容性小问题,编译过程中对内部类的注解处理出现了偏差,不用太慌,试试下面的方案:
方案一:升级Kotlin插件到兼容版本
AGP 3.1系列最好搭配Kotlin 1.2.40及以上版本,修改项目根目录的build.gradle文件:
buildscript { ext.kotlin_version = '1.2.71' // 选一个和AGP 3.1兼容的稳定版本 repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.1.4' // 建议用AGP 3.1的最新稳定版 classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } }
同步Gradle后,大部分情况下这个警告会直接消失。
方案二:临时禁用该Lint警告(应急用)
如果暂时不想升级插件,可以在模块的build.gradle里添加配置忽略这个警告:
android { compileSdkVersion 27 // 你的其他配置... compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = "1.8" } // 新增这部分配置 lintOptions { disable 'InnerClassAnnotation' } }
方案三:清理缓存并重新构建
有时候是编译缓存搞的鬼,试试这些操作:
- 点击Android Studio顶部菜单栏的
Build->Clean Project - 接着执行
Build->Rebuild Project - 如果还是不行,手动删掉项目根目录的
.gradle和各模块的build文件夹,再重新同步Gradle
另外还要留意一下项目里有没有自定义注解处理器或者老旧的第三方库,部分这类库也可能和AGP 3.1不兼容,触发这个警告,必要时可以升级这些依赖。
内容的提问来源于stack exchange,提问作者j2emanue
相关产品推荐
相关产品推荐

