Fixed
Status Update
Comments
da...@google.com <da...@google.com> #2
Fixed
go...@lutraha.com <go...@lutraha.com> #3
Redmi Note 9 android 13
on...@adastra.one <on...@adastra.one> #4
Fixed
a....@pri-num.com <a....@pri-num.com> #5
Hata düzeltme
aq...@gmail.com <aq...@gmail.com> #6
Cảm ơn
da...@google.com <da...@google.com> #7
ap...@google.com <ap...@google.com> #8
// Beta channel sdkmanager 'cmdline-tools;latest' --channel=1
// Canary channel sdkmanager 'cmdline-tools;latest' --channel=3
da...@google.com <da...@google.com>
da...@google.com <da...@google.com> #9
Wifi. Ibrahim- SR it Wifi.Sohag Room-19
an...@gmail.com <an...@gmail.com> #10
Really
ap...@google.com <ap...@google.com> #12
Project: platform/frameworks/support
Branch: androidx-main
Author: Daniel Santiago Rivera <
Link:
Handle null value case for KSP annotation convertValueToType()
Expand for full commit details
Handle null value case for KSP annotation convertValueToType()
In I883b890f6e844ef3efd351ed7c5cf3004969e44c KSP annotation values that where null where replaced by their default value to workaround the KSP1 issue of not returning default values when reading non-JVM source set annotations. Usages of `filterNotNull()` and `mapNotNull()` where used when unwrapping but a direct null value case was missed. This CL adds such case when the value type is a primitive yet it is missing (null).
Bug: 329508813
Bug: 396607230
Test: Manual in KMP project with Kotlin 2.1.10 and KSP with useKsp2 = false and @ColumnInfo
Change-Id: I693c912910dd5dd7cfae73abef18e9076c11f0af
Files:
- M
room/room-compiler-processing/src/main/java/androidx/room/compiler/processing/ksp/KspAnnotationValue.kt
Hash: f344a2e445227b287ecf10f84171065265606c9e
Date: Fri Feb 28 12:56:32 2025
da...@google.com <da...@google.com>
na...@google.com <na...@google.com> #13
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.room:room-compiler-processing:2.7.0-rc02
Description
Version used: room 2.7.0-beta01, sqlite 2.5.0-beta01
Devices/Android versions reproduced on: iPhone 16 Pro (18.2)
The issue happens during the compilation. The app compiles for Android target, but it fails to compile for iOS simulator.
> Task :xxx:kspKotlinIosSimulatorArm64 FAILED
note: [ksp] loaded provider(s): [androidx.room.RoomKspProcessor$Provider]
error: [ksp] java.lang.NullPointerException: null cannot be cast to non-null type androidx.room.compiler.processing.XAnnotation
at androidx.room.compiler.processing.XAnnotationValue.asAnnotation(XAnnotationValue.kt:62)
at androidx.room.compiler.processing.XAnnotationValue.asAnnotationList(XAnnotationValue.kt:68)
at androidx.room.processor.EntityProcessor$Companion.extractIndices(EntityProcessor.kt:42)
at androidx.room.processor.TableEntityProcessor.doProcess(TableEntityProcessor.kt:85)
at androidx.room.processor.TableEntityProcessor.process$lambda$0(TableEntityProcessor.kt:54)
at androidx.room.processor.cache.Cache$Bucket.get(Cache.kt:48)
at androidx.room.processor.TableEntityProcessor.process(TableEntityProcessor.kt:54)
at androidx.room.processor.DatabaseProcessor.processEntities(DatabaseProcessor.kt:442)
at androidx.room.processor.DatabaseProcessor.doProcess(DatabaseProcessor.kt:68)
at androidx.room.processor.DatabaseProcessor.process(DatabaseProcessor.kt:59)
at androidx.room.DatabaseProcessingStep.process$lambda$2$lambda$1(DatabaseProcessingStep.kt:69)
at androidx.room.processor.Context.collectLogs(Context.kt:178)
at androidx.room.DatabaseProcessingStep.process(DatabaseProcessingStep.kt:68)
at androidx.room.compiler.processing.CommonProcessorDelegate.processRound(XBasicAnnotationProcessor.kt:134)
at androidx.room.compiler.processing.ksp.KspBasicAnnotationProcessor.process(KspBasicAnnotationProcessor.kt:62)
at com.google.devtools.ksp.AbstractKotlinSymbolProcessingExtension$doAnalysis$8$1.invoke(KotlinSymbolProcessingExtension.kt:320)
at com.google.devtools.ksp.AbstractKotlinSymbolProcessingExtension$doAnalysis$8$1.invoke(KotlinSymbolProcessingExtension.kt:318)
at com.google.devtools.ksp.AbstractKotlinSymbolProcessingExtension.handleException(KotlinSymbolProcessingExtension.kt:430)
at com.google.devtools.ksp.AbstractKotlinSymbolProcessingExtension.doAnalysis(KotlinSymbolProcessingExtension.kt:318)
at org.jetbrains.kotlin.backend.konan.TopDownAnalyzerFacadeForKonan.analyzeFilesWithGivenTrace(TopDownAnalyzerFacadeForKonan.kt:102)
at org.jetbrains.kotlin.backend.konan.TopDownAnalyzerFacadeForKonan.analyzeFiles(TopDownAnalyzerFacadeForKonan.kt:65)
at org.jetbrains.kotlin.backend.konan.driver.phases.FrontendKt.FrontendPhase$lambda$3$lambda$2(Frontend.kt:67)
at org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.kt:112)
at org.jetbrains.kotlin.backend.konan.driver.phases.FrontendKt.FrontendPhase$lambda$3(Frontend.kt:66)
at org.jetbrains.kotlin.backend.common.phaser.PhaseBuildersKt$createSimpleNamedCompilerPhase$1.phaseBody(PhaseBuilders.kt:69)
at org.jetbrains.kotlin.backend.common.phaser.SimpleNamedCompilerPhase.phaseBody(CompilerPhase.kt:226)
at org.jetbrains.kotlin.backend.common.phaser.AbstractNamedCompilerPhase.invoke(CompilerPhase.kt:113)
at org.jetbrains.kotlin.backend.konan.driver.PhaseEngine.runPhase(Machinery.kt:120)
at org.jetbrains.kotlin.backend.konan.driver.PhaseEngine.runPhase$default(Machinery.kt:111)
at org.jetbrains.kotlin.backend.konan.driver.phases.TopLevelPhasesKt.runFrontend(TopLevelPhases.kt:32)
at org.jetbrains.kotlin.backend.konan.driver.DynamicCompilerDriver.serializeKlibK1(DynamicCompilerDriver.kt:152)
at org.jetbrains.kotlin.backend.konan.driver.DynamicCompilerDriver.produceKlib(DynamicCompilerDriver.kt:113)
at org.jetbrains.kotlin.backend.konan.driver.DynamicCompilerDriver.run$lambda$2$lambda$1$lambda$0(DynamicCompilerDriver.kt:44)
at org.jetbrains.kotlin.backend.konan.driver.PhaseEngine$Companion$startTopLevel$topLevelPhase$1.phaseBody(Machinery.kt:79)
at org.jetbrains.kotlin.backend.konan.driver.PhaseEngine$Companion$startTopLevel$topLevelPhase$1.phaseBody(Machinery.kt:73)
at org.jetbrains.kotlin.backend.common.phaser.SimpleNamedCompilerPhase.phaseBody(CompilerPhase.kt:226)
at org.jetbrains.kotlin.backend.common.phaser.AbstractNamedCompilerPhase.invoke(CompilerPhase.kt:113)
at org.jetbrains.kotlin.backend.konan.driver.PhaseEngine$Companion.startTopLevel(Machinery.kt:86)
at org.jetbrains.kotlin.backend.konan.driver.DynamicCompilerDriver.run(DynamicCompilerDriver.kt:37)
at org.jetbrains.kotlin.backend.konan.KonanDriver.run(KonanDriver.kt:151)
at org.jetbrains.kotlin.cli.bc.K2Native.runKonanDriver(K2Native.kt:167)
at org.jetbrains.kotlin.cli.bc.K2Native.doExecute(K2Native.kt:63)
at org.jetbrains.kotlin.cli.bc.K2Native.doExecute(K2Native.kt:32)
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:102)
at org.jetbrains.kotlin.cli.common.CLICompiler.exec(CLICompiler.kt:316)
at org.jetbrains.kotlin.cli.common.CLICompiler.exec(CLICompiler.kt:294)
at org.jetbrains.kotlin.cli.common.CLICompiler.exec(CLICompiler.kt:258)
at org.jetbrains.kotlin.cli.common.CLICompiler$Companion.doMainNoExit(CLICompiler.kt:395)
at org.jetbrains.kotlin.cli.bc.K2Native$Companion.mainNoExitWithRenderer$lambda$2(K2Native.kt:217)
at org.jetbrains.kotlin.util.UtilKt.profileIf(Util.kt:22)
at org.jetbrains.kotlin.util.UtilKt.profile(Util.kt:16)
at org.jetbrains.kotlin.cli.bc.K2Native$Companion.mainNoExitWithRenderer(K2Native.kt:216)
at org.jetbrains.kotlin.cli.bc.K2NativeKt.mainNoExitWithXcodeRenderer(K2Native.kt:235)
at org.jetbrains.kotlin.cli.utilities.MainKt$daemonMainWithXcodeRenderer$1.invoke(main.kt:52)
at org.jetbrains.kotlin.cli.utilities.MainKt$daemonMainWithXcodeRenderer$1.invoke(main.kt:52)
at org.jetbrains.kotlin.cli.utilities.MainKt.mainImpl(main.kt:20)
at org.jetbrains.kotlin.cli.utilities.MainKt.inProcessMain(main.kt:57)
at org.jetbrains.kotlin.cli.utilities.MainKt.daemonMainWithXcodeRenderer(main.kt:52)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.jetbrains.kotlin.internal.compilerRunner.native.KotlinNativeToolRunner.runInProcess(KotlinNativeToolRunner.kt:151)
at org.jetbrains.kotlin.internal.compilerRunner.native.KotlinNativeToolRunner.runTool(KotlinNativeToolRunner.kt:52)
at org.jetbrains.kotlin.gradle.tasks.KotlinNativeCompile$compile$1.invoke(KotlinNativeTasks.kt:594)
at org.jetbrains.kotlin.gradle.tasks.KotlinNativeCompile$compile$1.invoke(KotlinNativeTasks.kt:578)
at org.jetbrains.kotlin.compilerRunner.ReportUtilsKt.addBuildMetricsForTaskAction(reportUtils.kt:259)