Android Studio3.1下仅Java项目用Gradle Plugin4.4遇KotlinNullPointerException求助
解决纯Java项目升级Gradle Plugin 4.4触发KotlinNullPointerException的问题
我之前维护纯Java项目时也碰到过一模一样的问题——明明没碰过任何Kotlin相关配置,升级Gradle插件后突然跳出这个空指针异常。这其实是Gradle 4.x版本的隐性行为导致的,下面是一步步的解决方法:
1. 移除不必要的Kotlin插件配置
先检查两处build.gradle文件:
- 项目根目录的
build.gradle:看看buildscript里有没有引入Kotlin Gradle插件的classpath,比如:
如果有且你不需要Kotlin,直接删掉这一行。classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:xxx" - app模块的
build.gradle:确认有没有应用Kotlin的插件,比如:
有的话直接移除这些插件声明。apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions'
2. 强制排除所有隐性Kotlin依赖
哪怕你没手动加Kotlin依赖,第三方库或者Gradle插件本身可能会间接引入。在根目录的build.gradle里添加全局排除:
buildscript { configurations.all { exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib' exclude group: 'org.jetbrains.kotlin', module: 'kotlin-reflect' } } allprojects { configurations.all { exclude group: 'org.jetbrains.kotlin' } }
或者只在app模块的build.gradle里配置:
configurations { all*.exclude group: 'org.jetbrains.kotlin' }
3. 彻底清理Gradle缓存
旧的缓存文件可能残留了Kotlin相关的配置,导致异常:
- 执行终端命令:
./gradlew clean build --refresh-dependencies - 或者打开Android Studio,点击
File -> Invalidate Caches/Restart,选择Invalidate and Restart。
4. 检查第三方依赖的间接引入
如果上面的方法没解决,用./gradlew app:dependencies命令生成依赖树,查找哪个第三方库引入了Kotlin。找到后在依赖声明里排除:
implementation('com.example.thirdparty:library:1.0.0') { exclude group: 'org.jetbrains.kotlin' }
为什么会出现这个问题?
Gradle Plugin 4.x版本开始,部分内部构建逻辑依赖了Kotlin的标准库或反射库,哪怕是纯Java项目,这些隐性引入的Kotlin组件因为没有初始化对应的Kotlin环境,就会触发KotlinNullPointerException。
内容的提问来源于stack exchange,提问作者Sneh Pandya
相关产品推荐
相关产品推荐

