devbricksx-android icon indicating copy to clipboard operation
devbricksx-android copied to clipboard

当设定多个 primaryKeys 将遇到 KSErrorType cannot be cast 错误

Open AmyPlace opened this issue 1 year ago • 0 comments

当我设定2个以上 primaryKeys 就会遇到 KSErrorType cannot be cast to class com.google.devtools.ksp.symbol.KSAnnotation 的错误

version : id("cn.dailystudio.devbricksx.devkit") version "1.9.2-1.1.1"

Code: @RoomCompanion( database = "UserDB", databaseVersion = 1, migrations = [], autoGenerate = true, primaryKeys = ["type", "id"] ) data class User( @JvmField var type: Int, @JvmField var id: String, )

错误信息: [ksp] java.lang.ClassCastException: class com.google.devtools.ksp.symbol.impl.kotlin.KSErrorType cannot be cast to class com.google.devtools.ksp.symbol.KSAnnotation (com.google.devtools.ksp.symbol.impl.kotlin.KSErrorType and com.google.devtools.ksp.symbol.KSAnnotation are in unnamed module of loader java.net.URLClassLoader @7bc81a71) at androidx.room.compiler.processing.ksp.KspAnnotationBox.getAsAnnotationBoxArray(KspAnnotationBox.kt:106) at androidx.room.processor.EntityProcessor$Companion.extractIndices(EntityProcessor.kt:45) at androidx.room.processor.TableEntityProcessor.doProcess(TableEntityProcessor.kt:69) at androidx.room.processor.TableEntityProcessor.access$doProcess(TableEntityProcessor.kt:44) at androidx.room.processor.TableEntityProcessor$process$1.invoke(TableEntityProcessor.kt:53) at androidx.room.processor.TableEntityProcessor$process$1.invoke(TableEntityProcessor.kt:52) at androidx.room.processor.cache.Cache$Bucket.get(Cache.kt:53) at androidx.room.processor.TableEntityProcessor.process(TableEntityProcessor.kt:52) at androidx.room.processor.DatabaseProcessor.processEntities(DatabaseProcessor.kt:468) at androidx.room.processor.DatabaseProcessor.doProcess(DatabaseProcessor.kt:69) at androidx.room.processor.DatabaseProcessor.process(DatabaseProcessor.kt:60) at androidx.room.DatabaseProcessingStep$process$databases$1$1.invoke(DatabaseProcessingStep.kt:68) at androidx.room.DatabaseProcessingStep$process$databases$1$1.invoke(DatabaseProcessingStep.kt:64) at androidx.room.processor.Context.collectLogs(Context.kt:192) at androidx.room.DatabaseProcessingStep.process(DatabaseProcessingStep.kt:64) at androidx.room.compiler.processing.CommonProcessorDelegate.processRound(XBasicAnnotationProcessor.kt:130) at androidx.room.compiler.processing.ksp.KspBasicAnnotationProcessor.process(KspBasicAnnotationProcessor.kt:62) at com.google.devtools.ksp.AbstractKotlinSymbolProcessingExtension$doAnalysis$8$1.invoke(KotlinSymbolProcessingExtension.kt:310) at com.google.devtools.ksp.AbstractKotlinSymbolProcessingExtension$doAnalysis$8$1.invoke(KotlinSymbolProcessingExtension.kt:308) at com.google.devtools.ksp.AbstractKotlinSymbolProcessingExtension.handleException(KotlinSymbolProcessingExtension.kt:414) at com.google.devtools.ksp.AbstractKotlinSymbolProcessingExtension.doAnalysis(KotlinSymbolProcessingExtension.kt:308) at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(TopDownAnalyzerFacadeForJVM.kt:112) at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration$default(TopDownAnalyzerFacadeForJVM.kt:77) at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:256) at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:247) at org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.kt:115) at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze(KotlinToJVMBytecodeCompiler.kt:247) at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.repeatAnalysisIfNeeded(KotlinToJVMBytecodeCompiler.kt:181) at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli(KotlinToJVMBytecodeCompiler.kt:87) at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli$default(KotlinToJVMBytecodeCompiler.kt:43) at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:165) at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:50) at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:104) at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:48) at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:101) at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1523) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.base/java.lang.reflect.Method.invoke(Unknown Source) at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(Unknown Source) at java.rmi/sun.rmi.transport.Transport$1.run(Unknown Source) at java.rmi/sun.rmi.transport.Transport$1.run(Unknown Source) at java.base/java.security.AccessController.doPrivileged(Unknown Source) at java.rmi/sun.rmi.transport.Transport.serviceCall(Unknown Source) at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source) at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source) at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(Unknown Source) at java.base/java.security.AccessController.doPrivileged(Unknown Source) at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.base/java.lang.Thread.run(Unknown Source)

AmyPlace avatar Jul 10 '24 10:07 AmyPlace