Open gerenvip opened 1 year ago
功能:修复 启用 doc 的场景下, RouteProcessor 基于 kotlion 增量编译Filter时 创建 docWriter 触发JavaNullPointerException
Issues[1035]: https://github.com/alibaba/ARouter/issues/1035
crash 原因: https://github.com/JetBrains/kotlin/blob/master/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/incremental/incrementalProcessors.kt override fun init(processingEnv: ProcessingEnvironment) { if (!kind.canRunIncrementally) { processor.init(processingEnv) } else { val originalFiler = processingEnv.filer val incrementalFiler = IncrementalFiler(originalFiler) val incProcEnvironment = IncrementalProcessingEnvironment(processingEnv, incrementalFiler) processor.init(incProcEnvironment) incrementalFiler.dependencyCollector = dependencyCollector.value } }
执行 processor.init(incProcEnvironment) 时 还没有给 dependencyCollector 赋值,RouteProcessor#init 时 mFiler.createResource 会调用 dependencyCollector 导致 空指针
processor.init(incProcEnvironment)
dependencyCollector
解决方案:
All committers have signed the CLA.
功能:修复 启用 doc 的场景下, RouteProcessor 基于 kotlion 增量编译Filter时 创建 docWriter 触发JavaNullPointerException
Issues[1035]: https://github.com/alibaba/ARouter/issues/1035
crash 原因: https://github.com/JetBrains/kotlin/blob/master/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/incremental/incrementalProcessors.kt override fun init(processingEnv: ProcessingEnvironment) { if (!kind.canRunIncrementally) { processor.init(processingEnv) } else { val originalFiler = processingEnv.filer val incrementalFiler = IncrementalFiler(originalFiler) val incProcEnvironment = IncrementalProcessingEnvironment(processingEnv, incrementalFiler) processor.init(incProcEnvironment) incrementalFiler.dependencyCollector = dependencyCollector.value } }
执行
processor.init(incProcEnvironment)
时 还没有给dependencyCollector
赋值,RouteProcessor#init 时 mFiler.createResource 会调用 dependencyCollector 导致 空指针解决方案: