得到断言错误:升级到 Android Studio 4.2 和 Gradle 6.7.1 插件 4.2.0 后没有这样的枚举条目 LIBRARY_GROUP_PREFIX

Ale*_*der 8 android gradle android-studio android-databinding

升级到 Android Studio 4.2 和 Gradle 到 Gradle 6.7.1 插件 4.2.0 后,我们遇到了以下构建错误,但 Studio 没有突出显示代码中的任何错误。有什么问题吗?项目使用 Kotlin 和数据绑定。

e: java.lang.AssertionError: No such enum entry LIBRARY_GROUP_PREFIX in org.jetbrains.kotlin.ir.types.impl.IrSimpleTypeImpl@b254b575
        at org.jetbrains.kotlin.ir.util.ConstantValueGenerator.generateConstantOrAnnotationValueAsExpression(ConstantValueGenerator.kt:89)
        at org.jetbrains.kotlin.ir.util.ConstantValueGenerator.generateConstantOrAnnotationValueAsExpression(ConstantValueGenerator.kt:81)
        at org.jetbrains.kotlin.ir.util.ConstantValueGenerator.generateAnnotationConstructorCall(ConstantValueGenerator.kt:163)
        at org.jetbrains.kotlin.psi2ir.generators.AnnotationGenerator.generateAnnotationsForDeclaration(AnnotationGenerator.kt:47)
        at org.jetbrains.kotlin.psi2ir.generators.AnnotationGenerator.visitDeclaration(AnnotationGenerator.kt:25)
        at org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid$DefaultImpls.visitFunction(IrElementVisitorVoid.kt:49)
        at org.jetbrains.kotlin.psi2ir.generators.AnnotationGenerator.visitFunction(AnnotationGenerator.kt:13)
        at org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid$DefaultImpls.visitSimpleFunction(IrElementVisitorVoid.kt:52)
        at org.jetbrains.kotlin.psi2ir.generators.AnnotationGenerator.visitSimpleFunction(AnnotationGenerator.kt:13)
        at org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid$DefaultImpls.visitSimpleFunction(IrElementVisitorVoid.kt:53)
        at org.jetbrains.kotlin.psi2ir.generators.AnnotationGenerator.visitSimpleFunction(AnnotationGenerator.kt:13)
        at org.jetbrains.kotlin.psi2ir.generators.AnnotationGenerator.visitSimpleFunction(AnnotationGenerator.kt:13)
        at org.jetbrains.kotlin.ir.declarations.IrSimpleFunction.accept(IrSimpleFunction.kt:29)
        at org.jetbrains.kotlin.ir.declarations.IrClass.acceptChildren(IrClass.kt:61)
Run Code Online (Sandbox Code Playgroud)

如果使用 --info 选项再次运行构建,我们的自定义视图的数据绑定会出现错误,例如:

  public final TileFrameLayout viewShortTileWithPxp;
               ^
  symbol:   class TileFrameLayout
  location: class FavoriteTileWithPxpBinding.java:34: error: cannot find symbol
  protected TileModeField mTileMode;
Run Code Online (Sandbox Code Playgroud)

同时生成的FavoriteTileWithPxpBinding.java具有TileFrameLayout的正确导入,并且Studio正确显示所有依赖项。

所有这些在升级之前都有效。

小智 5

如果出现 No such enum Entry LIBRARY_GROUP_PREFIX 错误。您应该implementation "androidx.annotation:annotation:1.1.0"对出现错误的模块执行操作。

恩...,我发现如果唯一的应用程序没问题,但如果该应用程序有其他模块,则会出现类似错误

'Task :life_module:compileDebugKotlin FAILED
e: java.lang.AssertionError: No such enum entry LIBRARY_GROUP_PREFIX in org.jetbrains.kotlin.ir.types.impl.IrSimpleTypeImpl@b254b575'
Run Code Online (Sandbox Code Playgroud)


ner*_*ovs 5

就我而言,我迁移到 Gradle 7.2。但作为遗产,在 Gradle 的应用程序级别中,是这样的:

configurations.all {
   resolutionStrategy.force 'com.android.support:support-annotations:24.2.0'
}
Run Code Online (Sandbox Code Playgroud)

它强制使用 'androidx.annotation:annotation' 库的 1.0.0 版本,即使我显然使用了 'annotation' 依赖项并提到了任何其他版本。问题是,在这个“1.0.0”版本中,没有“LIBRARY_GROUP_PREFIX”枚举项。在我删除“resolutionStrategy.force”块后,一切都开始工作。


Ale*_*der 0

问题解决了。有几个变化:

  1. 将支持库更新到 AndroidX
  2. 更新 Dagger 等其他一些库的版本
  3. 更新 Kotlin

是的,使缓存无效并在完成所有这些操作后重新启动。