解决A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask
·
构建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)
- 先检查是否有其他报错信息:
例如:
错误: 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
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)