升级Android Studio 3.0至3.1正式版后项目报错求助
解决Android Studio 3.1升级后APT插件初始化失败的问题
嘿,这个问题我之前帮好几个开发者排查过,本质就是旧的第三方APT插件和Android Studio 3.1配套的Gradle版本不兼容导致的。下面给你一步步的解决思路:
移除过时的net.ltgt.apt插件依赖
- 打开项目根目录下的
build.gradle文件,找到类似下面的代码行,直接删除:classpath 'net.ltgt.gradle:gradle-apt-plugin:x.x.x' // x.x.x是你之前用的版本号 - 再打开module级别的
build.gradle文件,删掉开头的插件引用:apply plugin: 'net.ltgt.apt'
- 打开项目根目录下的
替换apt为官方的annotationProcessor
在同一个module的build.gradle里,把所有用apt声明的注解处理器依赖,全部替换成annotationProcessor。比如原来的:apt 'com.google.dagger:dagger-compiler:2.15'改成:
annotationProcessor 'com.google.dagger:dagger-compiler:2.15'同步并清理项目
- 点击Android Studio右上角的「Sync Project with Gradle Files」按钮,完成项目同步。
- 依次执行
Build -> Clean Project和Build -> Rebuild Project,彻底清除旧的构建缓存,避免残留问题。
可选但推荐:检查Gradle版本匹配
Android Studio 3.1对应的Gradle插件版本建议在3.1.0到3.1.4之间,确保根目录build.gradle里的配置是:dependencies { classpath 'com.android.tools.build:gradle:3.1.2' // 或同版本区间的其他版本 }对应的Gradle wrapper版本(在
gradle/wrapper/gradle-wrapper.properties中)推荐使用gradle-4.4-all.zip,即:distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
为什么会出现这个问题?
从Android Gradle插件3.0版本开始,官方已经内置了对注解处理器的支持,不再需要依赖第三方的net.ltgt.gradle.apt插件。旧插件的API和Android Studio 3.1配套的Gradle版本不兼容,就会触发NoClassDefFoundError这类初始化失败的错误。
内容的提问来源于stack exchange,提问作者alexpfx




