4

在我的 AppEngine 连接的 Android 项目中,我已经成功使用 RequestFactory 好几个月了。不过,有时我在子类 RequestFactory 的文件中遇到问题

public interface MyRequestFactory extends RequestFactory {
    ...
}

Eclipse 在“公共接口...”行上给了我一个红色的 X,我得到的错误如下所示。(注意这不是运行时,它只是在我编辑时在 Eclipse 窗口中)

奇怪的是,我通常可以做几次 Project->Clean 并编辑几次代码,从不进行任何实际的代码更改,然后“保存”并且问题总是消失。不过这次卡住了。

有任何想法吗?

java.lang.NullPointerException at
org.eclipse.jdt.apt.core.internal.AptCompilationParticipant.addJava6GeneratedFile(AptCompilationParticipant.java:272) at
org.eclipse.jdt.internal.apt.pluggable.core.dispatch.IdeProcessingEnvImpl.addNewUnit(IdeProcessingEnvImpl .java:132) 在
org.eclipse.jdt.internal.apt.pluggable.core.filer.IdeJavaSourceOutputStream.close(IdeJavaSourceOutputStream.java:72) 在 sun.nio.cs.StreamEncoder.implClose(StreamEncoder.java:319) 在sun.nio.cs.StreamEncoder.close(StreamEncoder.java:148) at
java.io.OutputStreamWriter.close(OutputStreamWriter.java:233) at java.io.BufferedWriter.close(BufferedWriter.java:265) at
java.io .PrintWriter.close(PrintWriter.java:312) 在
com.google.web.bindery.requestfactory.apt.DeobfuscatorBuilder.visitType(DeobfuscatorBuilder.java:146) 在
com.google.web.bindery.requestfactory.apt.DeobfuscatorBuilder.visitType(DeobfuscatorBuilder.java:43) 在
org.eclipse。 jdt.internal.compiler.apt.model.TypeElementImpl.accept(TypeElementImpl.java:60)
位于 com.google.web.bindery.requestfactory 的 javax.lang.model.util.ElementScanner6.scan(ElementScanner6.java:139)
。 apt.ScannerBase.scan(ScannerBase.java:63) 位于
com.google.web.bindery.requestfactory.apt.State.executeJobs(State.java:248) 位于
com.google.web.bindery.requestfactory.apt.RfValidator。处理(RfValidator.java:83)在
org.eclipse.jdt.internal.compiler.apt.dispatch.RoundDispatcher.handleProcessor(RoundDispatcher.java:139) 在
org.eclipse.jdt.internal.compiler.apt.dispatch.RoundDispatcher.round(RoundDispatcher.java:121) 在
org.eclipse.jdt.internal.apt.pluggable.core.dispatch.IdeAnnotationProcessorManager.processAnnotations(IdeAnnotationProcessorManager.java 的
org.eclipse.jdt.internal.compiler.apt.dispatch.BaseAnnotationProcessorManager.processAnnotations(BaseAnnotationProcessorManager.java:159 ) :134) 在 org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:432) 的
org.eclipse.jdt.internal.compiler.Compiler.processAnnotations(Compiler.java:813)
。 jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:364) 在
org.eclipse.jdt.internal.core.builder.IncrementalImageBuilder.compile(IncrementalImageBuilder.java:329) 在
org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:301) 在
org.eclipse。 jdt.internal.core.builder.IncrementalImageBuilder.build(IncrementalImageBuilder.java:134) 在
org.eclipse.jdt.internal.core.builder.JavaBuilder.buildDeltas(JavaBuilder.java:265) 在
org.eclipse.jdt.internal。 core.builder.JavaBuilder.build(JavaBuilder.java:193) at org.eclipse.core.internal.events.BuildManager $2.run(BuildManager.java:728) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner .java:42) 在
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:199) 在
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:239) 在 org.eclipse.core.internal.events.BuildManager $1.run(BuildManager.java:292) 在 org.eclipse.core.runtime .SafeRunner.run(SafeRunner.java:42) 在
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:295) 在
org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java :351)
org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:374)
org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:143)
org.eclipse。 core.internal.events.AutoBuildJob.run(AutoBuildJob.java:241) 在 org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

4

4 回答 4

4

这是一个已知的 Eclipse 错误。我找到的唯一解决方案是重新启动 eclipse。有时我必须在没有注释的情况下编译然后重新启动。

于 2012-10-04T15:55:07.367 回答
0

在我的情况下,仅重新启动或禁用注释处理不起作用。我有两个请求工厂(在不同的项目中!)有这个错误。

  • myReqFacA 扩展 RequestFactory
  • myReqFacB 扩展 RequestFactory

我通过删除请求工厂接口之一解决了这个问题。幸运的是,不再需要该界面。

但是一天后我又遇到了同样的问题!

于 2013-02-07T12:21:29.770 回答
0

我遇到了同样的问题。我使用的解决方法是重命名 RequestFactory 子类名称(Refactor->Rename)。我更改了子类的另一部分,它不起作用。编译成功后,只需将其重命名回原来的名称即可。

于 2013-06-20T21:42:48.270 回答
0

我从 GWT 的 RequestFactory 遇到了同样的问题,我解决了它删除文件夹“gwt-unitCache”,然后再次编译项目(项目 - >清理......)

很可能对于 android,有必要删除某种生成的文件夹并再次编译项目。

于 2014-03-31T10:16:22.887 回答