解决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.(LayoutBinder.java:142) at android.databinding.tool.DataBinder.(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
本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/5f0aaba5e2.html
