解决A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask

文章描述了在构建Kotlin项目时遇到的Executionfailedfortaskapp:kaptDebugKotlin错误,可能的原因包括ViewDataBinding的XML引用错误和各种版本不匹配,如AndroidGradle插件、Kotlin版本、GradleJDK以及第三方库版本。建议检查XML文件、版本配置和JDK设置以解决问题。
摘要由CSDN通过智能技术生成

构建Kotlin项目时报错如下:

Execution failed for task ':app:kaptDebugKotlin'.
> A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask$KaptExecutionWorkAction
   > java.lang.reflect.InvocationTargetException (no error message)
  1. 先检查是否有其他报错信息:
    例如:
错误: cannot generate view binders java.lang.NullPointerException
  	at android.databinding.tool.store.SetterStore.calculateConversionPriority(SetterStore.java:995)
  	at android.databinding.tool.store.SetterStore.isBetterParameter(SetterStore.java:890)
  	at android.databinding.tool.store.SetterStore.getBestSetter(SetterStore.java:750)
  	at android.databinding.tool.store.SetterStore.getSetterCall(SetterStore.java:572)
  	at android.databinding.tool.Binding.getListenerParameter(Binding.java:175)
  	at android.databinding.tool.Binding.resolveCallbackParams(Binding.java:77)
  	at android.databinding.tool.BindingTarget.resolveCallbackParams(BindingTarget.java:179)
  	at android.databinding.tool.LayoutBinder.<init>(LayoutBinder.java:142)
  	at android.databinding.tool.DataBinder.<init>(DataBinder.java:61)
  	at android.databinding.tool.CompilerChef.ensureDataBinder(CompilerChef.java:118)
  	at android.databinding.tool.CompilerChef.sealModels(CompilerChef.java:370)

这是说ViewDataBinding有问题,检查XML文件是否有引用错误的地方。

2.排除掉代码层面和xml层面的问题之后,考虑这种问题多半是版本不匹配造成的。一般按照以下步骤排查即可解决:

  • Android Gradle 插件版本与所需的Gradle版本是否匹配?

具体的版本对应地址
gradle插件版本在根目录的build.gradle中的buildscript{}中查看得到
gradle版本在gradle/wrapper/gradle-wrapper.properties中查看得到

  • Android kotlin插件版本与所需的Kotlin版本是否一样

kotlin插件版本在根目录的build.gradle中的buildscript{}中查看得到
AS的kotlin版本在File | Settings | Languages & Frameworks | Kotlin中查看得到

  • Gradle JDK 是否正确

File | Settings | Build, Execution, Deployment | Build Tools | Gradle中的Gradle JDK选择合适的版本Embedded JDK

  • 第三方与kotlin插件的版本是否匹配?

举个例子
Kotlin-Version = 1.6.0 => Room-Version = 2.4.2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值