Kelvin Chung
02/26/2024, 11:55 PMabstract class MyService : BuildService<BuildServiceParameters.None> {
abstract val myProperty: NamedDomainObjectContainer<MyType>
}
abstract class MyExtension constructor(val service: Provider<MyService>) {
val myProperty
get() = service.get().myProperty
}
override fun apply(project: Project) {
val service = project.gradle.sharedServices.registerIfAbsent(SERVICE_NAME, MyService::class.java) {}
val extension = project.extensions.create<MyExtension>(EXTENSION_NAME, service)
extension.myProperty.register(...)
}
I'm seeing a weird ClassCastException being emitted from this code:
Caused by: java.lang.ClassCastException: MyService$Inject cannot be cast to MyService
The stacktrace seems to be pointing to the service.get() call in MyExtension.myProperty. Any ideas wrt what is going on?ephemient
02/27/2024, 1:18 AMephemient
02/27/2024, 1:18 AM