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)
就我而言,我迁移到 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”块后,一切都开始工作。
归档时间: |
|
查看次数: |
3130 次 |
最近记录: |