我无法导入通过数据绑定使用注释生成的类

I can't import class that generated using annotation via databinding

提问人:A.Hüdai Kaya 提问时间:10/14/2023 最后编辑:A.Hüdai Kaya 更新时间:10/30/2023 访问量:55

问:

我用下面的注释生成器生成了一个类。

@AutoService(Processor::class)
class GenerateSealedGettersProcessor : AbstractProcessor() {
    override fun getSupportedAnnotationTypes(): MutableSet<String> {

        return mutableSetOf(GenerateSealedGetters::class.java.name)
    }

    override fun getSupportedSourceVersion(): SourceVersion {
        return SourceVersion.latest()
    }

    override fun init(processingEnv: ProcessingEnvironment) {
        super.init(processingEnv)
    }

    override fun process(
        annotations: MutableSet<out TypeElement>?,
        roundEnv: RoundEnvironment
    ): Boolean {
        val elements = roundEnv.getElementsAnnotatedWith(GenerateSealedGetters::class.java)
        for (element in elements) {
            val interfaceElement = element as TypeElement
            generateFunctionsForInterface(interfaceElement)
        }
        return true
    }

    private fun generateFunctionsForInterface(interfaceElement: TypeElement) {
        val packageName = processingEnv.elementUtils.getPackageOf(interfaceElement).toString()
        val className = interfaceElement.simpleName.toString()
        var classNameElements = emptyMap<String, List<Element>>()
        var varTypes: List<String> = emptyList()


        interfaceElement.enclosedElements
            .map {
                if (it.simpleName.toString() != "DefaultImpls") {
                    var enclosedElements = emptyList<Element>()
                    for (enclosedElement in it.enclosedElements) {
                        if (enclosedElement.kind == ElementKind.FIELD && enclosedElement.simpleName.toString() != "INSTANCE") {
                            varTypes = varTypes.plus(enclosedElement.asType().toString())
                            enclosedElements = enclosedElements.plus(enclosedElement)
                        }
                    }
                    classNameElements =
                        classNameElements.plus(it.simpleName.toString() to enclosedElements)
                }
            }


        val builderFile = processingEnv.filer.createSourceFile("$packageName.${className}Functions")
        val writer = PrintWriter(builderFile.openWriter())

        writer.println("package $packageName;")
        writer.println("import ${packageName}.${className};")
        varTypes.iterator().forEach {
            writer.println("import ${it};")
        }

        writer.println("class ${className}Functions {")


        for (element in classNameElements) {
            writer.println("        public static boolean is${element.key}(${className} obj) {")
            writer.println("            return obj instanceof ${className}.${element.key};")
            writer.println("        }")

            for (enclosedElement in element.value) {
                val firstLetter = enclosedElement.simpleName.toString().first().uppercaseChar()
                val simpleName =
                    enclosedElement.simpleName.toString().replaceFirstChar { firstLetter }
                writer.println(
                    "        public static ${
                        enclosedElement.asType().toString()
                    } get${element.key}$simpleName(${className} obj) {"
                )
                writer.println("            if (obj instanceof ${className}.${element.key}) {")
                writer.println("                return ((${className}.${element.key}) obj).get${simpleName}();")
                writer.println("            } else {")
                writer.println("                return null;")
                writer.println("            }")
                writer.println("        }")
            }
        }
        writer.println("}")
        writer.close()

    }
}

生成的类如下,路径正确。

package com.app.dnotes.features.select_category.ui;
import com.app.dnotes.features.select_category.ui.SelectCategoryUIState;
import com.app.dnotes.features.base.domain.CustomException;
import com.app.dnotes.features.select_category.ui.SuccessStateData;
class SelectCategoryUIStateFunctions {
        public static boolean isError(SelectCategoryUIState obj) {
            return obj instanceof SelectCategoryUIState.Error;
        }
        public static com.app.dnotes.features.base.domain.CustomException getErrorErrorStateData(SelectCategoryUIState obj) {
            if (obj instanceof SelectCategoryUIState.Error) {
                return ((SelectCategoryUIState.Error) obj).getErrorStateData();
            } else {
                return null;
            }
        }
        public static boolean isLoading(SelectCategoryUIState obj) {
            return obj instanceof SelectCategoryUIState.Loading;
        }
        public static boolean isSuccess(SelectCategoryUIState obj) {
            return obj instanceof SelectCategoryUIState.Success;
        }
        public static com.app.dnotes.features.select_category.ui.SuccessStateData getSuccessStateData(SelectCategoryUIState obj) {
            if (obj instanceof SelectCategoryUIState.Success) {
                return ((SelectCategoryUIState.Success) obj).getStateData();
            } else {
                return null;
            }
        }
}

当我尝试通过数据绑定从我的 UI 文件导入时,它找不到我的类。

<layout
   ...>

<data>
        <import type="com.app.dnotes.features.note.ui.NoteUIStateFunctions" />
</data>
...
</layout>

出现以下错误: 无法解析类型“NoteUIStateFunctions”


2023-10-14T17:48:21.272+0300 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] 
2023-10-14T17:48:21.274+0300 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] FAILURE: Build failed with an exception.
2023-10-14T17:48:21.276+0300 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] 
2023-10-14T17:48:21.276+0300 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * What went wrong:
2023-10-14T17:48:21.276+0300 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Execution failed for task ':app:kaptDebugKotlin'.
2023-10-14T17:48:21.276+0300 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] > A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask$KaptExecutionWorkAction
2023-10-14T17:48:21.277+0300 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]    > java.lang.reflect.InvocationTargetException (no error message)
2023-10-14T17:48:21.277+0300 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] 
2023-10-14T17:48:21.277+0300 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * Try:
2023-10-14T17:48:21.277+0300 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] > Run with --stacktrace option to get the stack trace.
2023-10-14T17:48:21.277+0300 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] > Run with --scan to get full insights.
2023-10-14T17:48:21.277+0300 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] 
2023-10-14T17:48:21.277+0300 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * Get more help at https://help.gradle.org
2023-10-14T17:48:21.278+0300 [ERROR] [org.gradle.internal.buildevents.BuildResultLogger] 
2023-10-14T17:48:21.285+0300 [ERROR] [org.gradle.internal.buildevents.BuildResultLogger] BUILD FAILED in 15s

我的堆栈跟踪日志如下;


> Task :app:kaptDebugKotlin
error: Cannot resolve type 'NoteUIStateFunctions'
error: cannot generate view binders android.databinding.tool.util.LoggedErrorException: failure, see logs for details.
  Cannot resolve type 'NoteUIStateFunctions'
        at android.databinding.tool.util.L.printMessage(L.java:134)
        at android.databinding.tool.util.L.e(L.java:107)
        at android.databinding.tool.expr.Expr.getResolvedType(Expr.java:391)
        at android.databinding.tool.expr.ExprModel.lambda$resolveTypes$1(ExprModel.java:626)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
        at android.databinding.tool.expr.ExprModel.resolveTypes(ExprModel.java:626)
        at android.databinding.tool.expr.ExprModel.seal(ExprModel.java:418)
        at android.databinding.tool.LayoutBinder.sealModel(LayoutBinder.java:245)
        at android.databinding.tool.DataBinder.sealModels(DataBinder.java:88)
        at android.databinding.tool.CompilerChef.sealModels(CompilerChef.java:371)
        at android.databinding.annotationprocessor.ProcessExpressions.writeResourceBundle(ProcessExpressions.java:245)
        at android.databinding.annotationprocessor.ProcessExpressions.onHandleStep(ProcessExpressions.java:125)
        at android.databinding.annotationprocessor.ProcessDataBinding$ProcessingStep.runStep(ProcessDataBinding.java:246)
        at android.databinding.annotationprocessor.ProcessDataBinding.doProcess(ProcessDataBinding.java:112)
        at android.databinding.annotationprocessor.ProcessDataBinding.process(ProcessDataBinding.java:87)
        at org.jetbrains.kotlin.kapt3.base.incremental.IncrementalProcessor.process(incrementalProcessors.kt:90)
        at org.jetbrains.kotlin.kapt3.base.ProcessorWrapper.process(annotationProcessing.kt:197)
        at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:1023)
        at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:939)
        at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1267)
        at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1382)
        at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1234)
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
        at java.base/java.lang.reflect.Method.invoke(Method.java:577)
        at org.jetbrains.kotlin.kapt3.base.AnnotationProcessingKt.doAnnotationProcessing(annotationProcessing.kt:90)
        at org.jetbrains.kotlin.kapt3.base.AnnotationProcessingKt.doAnnotationProcessing$default(annotationProcessing.kt:31)
        at org.jetbrains.kotlin.kapt3.base.Kapt.kapt(Kapt.kt:47)
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
        at java.base/java.lang.reflect.Method.invoke(Method.java:577)
        at org.jetbrains.kotlin.gradle.internal.KaptExecution.run(KaptWithoutKotlincTask.kt:311)
        at org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask$KaptExecutionWorkAction.execute(KaptWithoutKotlincTask.kt:257)
        at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:63)
        at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:66)
        at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:62)
        at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:100)
        at org.gradle.workers.internal.NoIsolationWorkerFactory$1.lambda$execute$0(NoIsolationWorkerFactory.java:62)
        at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:44)
        at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:41)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
        at org.gradle.workers.internal.AbstractWorker.executeWrappedInBuildOperation(AbstractWorker.java:41)
        at org.gradle.workers.internal.NoIsolationWorkerFactory$1.execute(NoIsolationWorkerFactory.java:59)
        at org.gradle.workers.internal.DefaultWorkerExecutor.lambda$submitWork$0(DefaultWorkerExecutor.java:169)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runExecution(DefaultConditionalExecutionQueue.java:187)
        at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.access$700(DefaultConditionalExecutionQueue.java:120)
        at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner$1.run(DefaultConditionalExecutionQueue.java:162)
        at org.gradle.internal.Factories$1.create(Factories.java:31)
        at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:249)
        at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:109)
        at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:114)
        at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runBatch(DefaultConditionalExecutionQueue.java:157)
        at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.run(DefaultConditionalExecutionQueue.java:126)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:49)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at java.base/java.lang.Thread.run(Thread.java:833)

> Task :app:kaptDebugKotlin FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:kaptDebugKotlin'.
> A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask$KaptExecutionWorkAction
   > java.lang.reflect.InvocationTargetException (no error message)

* Try:
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:kaptDebugKotlin'.
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:149)
        at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:282)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:147)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:135)
       ...

Caused by: org.gradle.workers.internal.DefaultWorkerExecutor$WorkExecutionException: A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask$KaptExecutionWorkAction
        at org.gradle.workers.internal.DefaultWorkerExecutor$WorkItemExecution.waitForCompletion(DefaultWorkerExecutor.java:283)
        at org.gradle.internal.work.DefaultAsyncWorkTracker.lambda$waitForItemsAndGatherFailures$2(DefaultAsyncWorkTracker.java:130)
        at org.gradle.internal.Factories$1.create(Factories.java:31)
     ...
Caused by: java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:119)
        at org.jetbrains.kotlin.gradle.internal.KaptExecution.run(KaptWithoutKotlincTask.kt:311)
        at org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask$KaptExecutionWorkAction.execute(KaptWithoutKotlincTask.kt:257)
        at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:63)
        at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:66)
        at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:62)
        at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:100)
  ...
Caused by: org.jetbrains.kotlin.kapt3.base.util.KaptBaseError: Error while annotation processing
        at org.jetbrains.kotlin.kapt3.base.AnnotationProcessingKt.doAnnotationProcessing(annotationProcessing.kt:132)
        at org.jetbrains.kotlin.kapt3.base.AnnotationProcessingKt.doAnnotationProcessing$default(annotationProcessing.kt:31)
        at org.jetbrains.kotlin.kapt3.base.Kapt.kapt(Kapt.kt:47)
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
  ...

* Get more help at https://help.gradle.org

BUILD FAILED in 2m 56s
79 actionable tasks: 79 executed

你能帮我解决这个问题吗,或者你对这个问题有任何想法吗?

我尝试从 Functions 类创建新实例,并像这样在我的视图中使用这些实例。它给了我以下错误。viewModel.functions.getSuccessCategories(viewModel.uiState)

> Task :app:kaptDebugKotlin FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:kaptDebugKotlin'.
> A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask$KaptExecutionWorkAction
   > java.lang.reflect.InvocationTargetException (no error message)

* Try:
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:kaptDebugKotlin'.
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:149)
    at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:282)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:147)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:135)
    at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
    at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)
    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:74)
    at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
    at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:42)
    ...
Caused by: org.gradle.workers.internal.DefaultWorkerExecutor$WorkExecutionException: A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask$KaptExecutionWorkAction
    at org.gradle.workers.internal.DefaultWorkerExecutor$WorkItemExecution.waitForCompletion(DefaultWorkerExecutor.java:283)
    at org.gradle.internal.work.DefaultAsyncWorkTracker.lambda$waitForItemsAndGatherFailures$2(DefaultAsyncWorkTracker.java:130)
    at org.gradle.internal.Factories$1.create(Factories.java:31)
    at org.gradle.internal.work.DefaultWorkerLeaseService.withoutLocks(DefaultWorkerLeaseService.java:321)
    at org.gradle.internal.work.DefaultWorkerLeaseService.withoutLocks(DefaultWorkerLeaseService.java:304)
    at org.gradle.internal.work.DefaultWorkerLeaseService.withoutLock(DefaultWorkerLeaseService.java:309)
    at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForItemsAndGatherFailures(DefaultAsyncWorkTracker.java:126)
    at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForItemsAndGatherFailures(DefaultAsyncWorkTracker.java:92)
    at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForAll(DefaultAsyncWorkTracker.java:78)
    at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForCompletion(DefaultAsyncWorkTracker.java:66)
    at org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:250)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68)
    at org.gradle.api.internal.tasks.execution.TaskExecution.executeAction(TaskExecution.java:227)
    at org.gradle.api.internal.tasks.execution.TaskExecution.executeActions(TaskExecution.java:210)
    at org.gradle.api.internal.tasks.execution.TaskExecution.executeWithPreviousOutputFiles(TaskExecution.java:193)
    at org.gradle.api.internal.tasks.execution.TaskExecution.execute(TaskExecution.java:166)
    at org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:93)
    at org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:44)
    at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:57)
    at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:54)
    ...
Caused by: java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:119)
    at org.jetbrains.kotlin.gradle.internal.KaptExecution.run(KaptWithoutKotlincTask.kt:311)
    at org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask$KaptExecutionWorkAction.execute(KaptWithoutKotlincTask.kt:257)
    at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:63)
    at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:66)
    at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:62)
    at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:100)
    at org.gradle.workers.internal.NoIsolationWorkerFactory$1.lambda$execute$0(NoIsolationWorkerFactory.java:62)
    at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:44)
    at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:41)
    ... 
Caused by: java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:119)
    at org.jetbrains.kotlin.kapt3.base.AnnotationProcessingKt.doAnnotationProcessing(annotationProcessing.kt:90)
    at org.jetbrains.kotlin.kapt3.base.AnnotationProcessingKt.doAnnotationProcessing$default(annotationProcessing.kt:31)
    at org.jetbrains.kotlin.kapt3.base.Kapt.kapt(Kapt.kt:47)
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
    ... 31 more
Caused by: com.sun.tools.javac.processing.AnnotationProcessingError: android.databinding.tool.util.LoggedErrorException: Found data binding error(s):

[databinding] {"msg":"cannot find method getSuccessUiModel(com.duhapp.dnotes.features.generic.ui.ShowMessageBottomSheetUIState) in class error.NonExistentClass","file":"app/src/main/res/layout/fragment_show_message_bottom_sheet.xml","pos":[{"line0":26,"col0":27,"line1":26,"col1":82}]}
[databinding] {"msg":"cannot find method getSuccessCategoryUIModel(com.duhapp.dnotes.features.add_or_update_category.ui.CategoryBottomSheetUIState) in class error.NonExistentClass","file":"app/src/main/res/layout/fragment_category_bottom_sheet.xml","pos":[{"line0":60,"col0":37,"line1":60,"col1":106}]}
[databinding] {"msg":"cannot find method getSuccessCategories(com.duhapp.dnotes.features.home.HomeUIState) in class error.NonExistentClass","file":"app/src/main/res/layout/fragment_home.xml","pos":[{"line0":29,"col0":30,"line1":29,"col1":88}]}

    at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:1035)
    at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment$DiscoveredProcessors$ProcessorStateIterator.runContributingProcs(JavacProcessingEnvironment.java:859)
    at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1265)
    at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1404)
    at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1234)
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
    ... 35 more
Caused by: android.databinding.tool.util.LoggedErrorException: Found data binding error(s):

[databinding] {"msg":"cannot find method getSuccessUiModel(com.duhapp.dnotes.features.generic.ui.ShowMessageBottomSheetUIState) in class error.NonExistentClass","file":"app/src/main/res/layout/fragment_show_message_bottom_sheet.xml","pos":[{"line0":26,"col0":27,"line1":26,"col1":82}]}
[databinding] {"msg":"cannot find method getSuccessCategoryUIModel(com.duhapp.dnotes.features.add_or_update_category.ui.CategoryBottomSheetUIState) in class error.NonExistentClass","file":"app/src/main/res/layout/fragment_category_bottom_sheet.xml","pos":[{"line0":60,"col0":37,"line1":60,"col1":106}]}
[databinding] {"msg":"cannot find method getSuccessCategories(com.duhapp.dnotes.features.home.HomeUIState) in class error.NonExistentClass","file":"app/src/main/res/layout/fragment_home.xml","pos":[{"line0":29,"col0":30,"line1":29,"col1":88}]}

    at android.databinding.tool.processing.Scope.assertNoError(Scope.java:114)
    at android.databinding.annotationprocessor.ProcessDataBinding.doProcess(ProcessDataBinding.java:123)
    at android.databinding.annotationprocessor.ProcessDataBinding.process(ProcessDataBinding.java:87)
    at org.jetbrains.kotlin.kapt3.base.incremental.IncrementalProcessor.process(incrementalProcessors.kt:90)
    at org.jetbrains.kotlin.kapt3.base.ProcessorWrapper.process(annotationProcessing.kt:197)
    at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:1023)
    ... 40 more
android kotlin android-databinding 注解处理

评论

0赞 Colin Alworth 10/17/2023
如果您按照建议运行,还有什么更多信息吗?--stacktrace
0赞 A.Hüdai Kaya 10/20/2023
感谢您@ColinAlworth回复。我添加了堆栈跟踪日志
0赞 Colin Alworth 10/20/2023
看起来您的处理器在需要其输出时尚未运行,或者其输出不适用于 android 数据绑定处理器。项目中的处理器是如何配置的,kaptDebugKotlin 的类路径、任务依赖是如何配置的?(我熟悉 Gradle 和 Annotation Processors,但已经十多年没有编写过 Android 应用程序了,也不知道 Android 开发使用 Gradle)。
0赞 A.Hüdai Kaya 10/26/2023
我使用下面的实现和处理器处理程序实现了我的注释项目。 我在settings.gradle文件中包含了注释项目,此外,我创建了一个函数提供程序类来提供函数类对象,并且我使用此对象来访问方法。但它给出了新的错误:) ' 错误:在类错误中找不到方法 getSuccessUiModel(com.duhapp.dnotes.features.generic.ui.ShowMessageBottomSheetUIState)。不存在类 'implementation project(path: ':annotation')kapt project(path: ':annotation')include ':annotation'
0赞 Colin Alworth 10/27/2023
在问题中完整发布新错误?

答: 暂无答案