You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Parceler 1.1.13和Realm时出现Code generation did not complete successfully错误

问题复现

使用Parceler 1.1.13搭配Realm开发时,出现Parceler编译错误,错误提示为*"Code generation did not complete successfully"*。已排查确认:

  • 回滚到无问题的历史代码版本,错误依然存在
  • 执行IDE缓存清理重启、项目清理重建操作后,错误未解决
错误日志
error: Parceler: Code generation did not complete successfully.
  org.parceler.transfuse.transaction.TransactionRuntimeException: Encountered ErrorType 
<error>, unable to recover
Parceler: Code generation did not complete successfully.

at org.parceler.transfuse.adapter.element.AnnotationValueConverterVisitor.visitSimple(AnnotationValueConverterVisitor.java:159)
at org.parceler.transfuse.adapter.element.AnnotationValueConverterVisitor.visitString(AnnotationValueConverterVisitor.java:101)
at org.parceler.transfuse.adapter.element.AnnotationValueConverterVisitor.visitString(AnnotationValueConverterVisitor.java:40)
at jdk.compiler/com.sun.tools.javac.code.Attribute$Error.accept(Attribute.java:398)
at org.parceler.transfuse.adapter.element.AnnotationValueConverterVisitor.visitArray(AnnotationValueConverterVisitor.java:136)
at org.parceler.transfuse.adapter.element.AnnotationValueConverterVisitor.visitArray(AnnotationValueConverterVisitor.java:40)
at jdk.compiler/com.sun.tools.javac.code.Attribute$Array.accept(Attribute.java:348)
at org.parceler.transfuse.adapter.element.ASTElementAnnotation.getProperty(ASTElementAnnotation.java:74)
at org.parceler.internal.ParcelableAnalysis.innerAnalyze(ParcelableAnalysis.java:78)
at org.parceler.internal.ParcelableAnalysis.analyze(ParcelableAnalysis.java:68)
at org.parceler.internal.ParcelTransactionWorker.innerRun(ParcelTransactionWorker.java:48)
at org.parceler.internal.ParcelTransactionWorker.innerRun(ParcelTransactionWorker.java:31)
at org.parceler.transfuse.transaction.AbstractCompletionTransactionWorker.run(AbstractCompletionTransactionWorker.java:35)
at org.parceler.transfuse.transaction.CodeGenerationScopedTransactionWorker.innerRun(CodeGenerationScopedTransactionWorker.java:47)
at org.parceler.transfuse.transaction.AbstractCompletionTransactionWorker.run(AbstractCompletionTransactionWorker.java:35)
at org.parceler.transfuse.transaction.ScopedTransactionWorker.run(ScopedTransactionWorker.java:55)
at org.parceler.transfuse.transaction.Transaction.run(Transaction.java:77)
at org.parceler.guava.util.concurrent.MoreExecutors$DirectExecutorService.execute(MoreExecutors.java:299)
at org.parceler.transfuse.transaction.TransactionProcessorPool.execute(TransactionProcessorPool.java:60)
at org.parceler.transfuse.transaction.TransactionProcessorComposite.execute(TransactionProcessorComposite.java:37)
at org.parceler.transfuse.transaction.TransactionProcessorChain.execute(TransactionProcessorChain.java:38)
at org.parceler.internal.ParcelProcessor.execute(ParcelProcessor.java:83)
at org.parceler.ParcelAnnotationProcessor.process(ParcelAnnotationProcessor.java:84)
at org.gradle.api.internal.tasks.compile.processing.DelegatingProcessor.process(DelegatingProcessor.java:62)
at org.gradle.api.internal.tasks.compile.processing.IsolatingProcessor.process(IsolatingProcessor.java:50)
at org.gradle.api.internal.tasks.compile.processing.DelegatingProcessor.process(DelegatingProcessor.java:62)
at org.gradle.api.internal.tasks.compile.processing.TimeTrackingProcessor.access$401(TimeTrackingProcessor.java:37)
at org.gradle.api.internal.tasks.compile.processing.TimeTrackingProcessor$5.create(TimeTrackingProcessor.java:99)
at org.gradle.api.internal.tasks.compile.processing.TimeTrackingProcessor$5.create(TimeTrackingProcessor.java:96)
at org.gradle.api.internal.tasks.compile.processing.TimeTrackingProcessor.track(TimeTrackingProcessor.java:117)
at org.gradle.api.internal.tasks.compile.processing.TimeTrackingProcessor.process(TimeTrackingProcessor.java:96)
at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:980)
at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment$DiscoveredProcessors$ProcessorStateIterator.runContributingProcs(JavacProcessingEnvironment.java:816)
at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1220)
at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1356)
at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1258)
at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:936)
at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.lambda$doCall$0(JavacTaskImpl.java:104)
at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.handleExceptions(JavacTaskImpl.java:147)
at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:100)
at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:94)
at org.gradle.internal.compiler.java.IncrementalCompileTask.call(IncrementalCompileTask.java:74)
at org.gradle.api.internal.tasks.compile.AnnotationProcessingCompileTask.call(AnnotationProcessingCompileTask.java:94)
at org.gradle.api.internal.tasks.compile.ResourceCleaningCompilationTask.call(ResourceCleaningCompilationTask.java:57)
at org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:55)
at org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:40)
at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.delegateAndHandleErrors(NormalizingJavaCompiler.java:97)
at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:51)
at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:37)
at org.gradle.api.internal.tasks.compile.AnnotationProcessorDiscoveringCompiler.execute(AnnotationProcessorDiscoveringCompiler.java:51)
at org.gradle.api.internal.tasks.compile.AnnotationProcessorDiscoveringCompiler.execute(AnnotationProcessorDiscoveringCompiler.java:37)
at org.gradle.api.internal.tasks.compile.ModuleApplicationNameWritingCompiler.execute(ModuleApplicationNameWritingCompiler.java:46)
at org.gradle.api.internal.tasks.compile.ModuleApplicationNameWritingCompiler.execute(ModuleApplicationNameWritingCompiler.java:36)
at org.gradle.api.internal.tasks.compile.CleaningJavaCompiler.execute(CleaningJavaCompiler.java:53)
at org.gradle.api.internal.tasks.compile.incremental.IncrementalCompilerFactory.lambda$createRebuildAllCompiler$0(IncrementalCompilerFactory.java:98)
at org.gradle.api.internal.tasks.compile.incremental.IncrementalResultStoringCompiler.execute(IncrementalResultStoringCompiler.java:61)
at org.gradle.api.internal.tasks.compile.incremental.IncrementalResultStoringCompiler.execute(IncrementalResultStoringCompiler.java:45)
at org.gradle.api.internal.tasks.compile.CompileJavaBuildOperationReportingCompiler$2.call(CompileJavaBuildOperationReportingCompiler.java:59)
at org.gradle.api.internal.tasks.compile.CompileJavaBuildOperationReportingCompiler$2.call(CompileJavaBuildOperationReportingCompiler.java:51)
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:76)
at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)
解决方案

从错误栈可以定位到问题出在Parceler解析@Parcel注解属性的阶段,编译器读取到了无法识别的错误类型,按以下步骤排查即可解决:

  • 检查所有标注了@Parcel注解的类,确认注解的converter、implementation等参数引用的类是否存在、是否有拼写错误,是否存在类引用缺失的问题
  • 确认Realm和Parceler的版本兼容性:Parceler 1.1.13适配的Realm版本最高为6.x,若当前使用的Realm版本高于该范围,可升级Parceler到1.1.14及以上版本,或降低Realm版本适配
  • 检查项目使用的JDK版本:Parceler 1.1.13不支持JDK 16及更高版本,若近期升级了JDK,可降级到JDK 8/11,或升级Parceler到适配高版本JDK的发行版
  • 排查Realm实体类的Parceler配置:如果是Realm代理类序列化问题,需要给@Parcel注解添加implementation = RealmObject.class参数,同时配置对应的Parceler Realm适配器
  • 若仍无法定位问题,可在项目根目录执行./gradlew clean compileDebugJavaWithJavac --stacktrace获取更精准的错误定位,找到具体触发解析错误的类

内容的提问来源于stack exchange,提问作者Dr4ke the b4dass

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 09:36:04