首页 > 解决方案 > 任务“:app:dataBindingGenBaseClassesBetaDebug”执行失败

问题描述

**错误:任务“:app:dataBindingGenBaseClassesBetaDebug”执行失败。

不是一个有效的名字:switch

**

将 android studio 更新到 4.2.1 版后无法运行构建。

buildFeatures { viewBinding true }

错误详情:

FAILURE:构建失败并出现异常。

原因:java.lang.IllegalArgumentException:不是一个有效的名称:在 com.squareup.javapoet.Util.checkArgument(Util.java:53) 的 com.squareup.javapoet.FieldSpec.builder(FieldSpec.java:91) 处切换android.databinding.tool.ext.Javapoet_extKt.fieldSpec(javapoet_ext.kt:60) 在 android.databinding.tool.writer.JavaFileGenerator.bindingFields(ViewBinderGenerateJava.kt:102) 在 android.databinding.tool.writer.JavaFileGenerator.access$ bindingFields(ViewBinderGenerateJava.kt:52) at android.databinding.tool.writer.JavaFileGenerator$typeSpec$1.invoke(ViewBinderGenerateJava.kt:81) at android.databinding.tool.writer.JavaFileGenerator$typeSpec$1.invoke(ViewBinderGenerateJava.kt: 52) 在 android.databinding.tool.ext.Javapoet_extKt.classSpec(javapoet_ext.kt:39) 在 android.databinding.tool.writer.JavaFileGenerator.typeSpec(ViewBinderGenerateJava.kt:73) 在 android。databinding.tool.writer.JavaFileGenerator.create(ViewBinderGenerateJava.kt:69) at android.databinding.tool.writer.ViewBinderGenerateJavaKt.toJavaFile(ViewBinderGenerateJava.kt:43) at android.databinding.tool.BaseDataBinder$generateAll$2.accept(BaseDataBinder .kt:82) at android.databinding.tool.BaseDataBinder$generateAll$2.accept(BaseDataBinder.kt:34) at android.databinding.tool.BaseDataBinder.generateAll(BaseDataBinder.kt:63) at com.android.build.gradle .internal.tasks.databinding.DataBindingGenBaseClassesTask$CodeGenerator.run(DataBindingGenBaseClassesTask.kt:228) at com.android.build.gradle.internal.tasks.databinding.DataBindingGenBaseClassesTask$writeBaseClasses$$$inlined$recordTaskAction$1.invoke(BaseTask.kt: 67) 在 com.android.build.gradle.internal.tasks.databinding 的 com.android.build.gradle.internal.tasks.Blocks.recordSpan(Blocks.java:51)。DataBindingGenBaseClassesTask.writeBaseClasses(DataBindingGenBaseClassesTask.kt:255) 在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

标签: androidandroid-studiodata-bindingandroid-viewbinding

解决方案


推荐阅读