为什么Android Studio中使用Java 11会抛出TaskExecutionException?
问题根因
Java 9及更高版本移除了原本默认内置在JDK中的Java EE相关模块,其中就包含JAXB(Java Architecture for XML Binding)组件。你项目中的注解处理逻辑依赖JAXB相关类,JDK 11默认不提供该组件,因此触发类找不到异常,进而导致kapt构建任务执行失败。
解决方案
步骤1:补充JAXB相关依赖
打开app模块的build.gradle文件,在dependencies区块添加如下配置:
dependencies { // 适配JDK11+缺失的JAXB组件,供kapt注解处理器使用 kapt "javax.xml.bind:jaxb-api:2.3.1" kapt "com.sun.xml.bind:jaxb-core:2.3.0.1" kapt "com.sun.xml.bind:jaxb-impl:2.3.5" kapt "javax.activation:activation:1.1.1" // 若存在Java注解处理器也依赖JAXB,同步添加如下配置 // annotationProcessor "javax.xml.bind:jaxb-api:2.3.1" // annotationProcessor "com.sun.xml.bind:jaxb-core:2.3.0.1" // annotationProcessor "com.sun.xml.bind:jaxb-impl:2.3.5" // annotationProcessor "javax.activation:activation:1.1.1" }
步骤2:排查老旧注解处理器适配
如果添加上述依赖后仍报错,排查项目中长时间未更新的注解处理器(比如低于8.8.1版本的ButterKnife、老旧的ORM框架注解处理器等),将其升级到支持JDK 11的版本即可。
步骤3:验证构建
配置完成后执行清理构建命令验证:
./gradlew clean assemblePlaystoreDebug
构建成功即代表问题修复。
内容的提问来源于stack exchange,提问作者user14016240
相关产品推荐
相关产品推荐

