4

AppEngineに接続されたAndroidプロジェクトで、RequestFactoryを何ヶ月も正常に使用しています。ただし、RequestFactoryをサブクラス化するファイルで問題が発生することがあります。

public interface MyRequestFactory extends RequestFactory {
    ...
}

Eclipseは「publicinterface...」の行に赤いXを表示し、表示されるエラーを以下に示します。(これはランタイムではないことに注意してください。編集中はEclipseウィンドウに表示されます)

奇妙なことに、私は通常、いくつかのプロジェクト->コードのクリーンアップと編集を数回行うことができ、実際のコード変更を行うことはありません。その後、「保存」すると、問題は常に解消されます。今回は立ち往生しています。

何か案は?

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)at
org.eclipse.jdt.internal.apt.pluggable.core.filer.IdeJavaSourceOutputStream.close(IdeJavaSourceOutputStream.java:72)at sun.nio.cs.StreamEncoder.implClose(StreamEncoder.java:319)at 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)at
com.google.web.bindery.requestfactory.apt.DeobfuscatorBuilder.visitType(DeobfuscatorBuilder.java:43
)at
org.eclipseのcom.google.web.bindery.requestfactory.apt.DeobfuscatorBuilder.visitType(DeobfuscatorBuilder.java:146) jdt.internal.compiler.apt.model.TypeElementImpl.accept(TypeElementImpl.java:60)at
javax.lang.model.util.ElementScanner6.scan(ElementScanner6.java:139)atcom.google.web.bindery.requestfactory
。 apt.ScannerBase.scan(ScannerBase.java:63)at
com.google.web.bindery.requestfactory.apt.State.executeJobs(State.java:248)at
com.google.web.bindery.requestfactory.apt.RfValidator process(RfValidator.java:83)at
org.eclipse.jdt.internal.compiler.apt.dispatch.RoundDispatcher.handleProcessor(RoundDispatcher.java:139)at
org.eclipse.jdt.internal.compiler.apt.dispatch.RoundDispatcher.round(RoundDispatcher.java:121)at
org.eclipse.jdt.internal.apt.pluggable.core.dispatch.IdeAnnotationProcessorManager.processAnnotationProcessorManのorg.eclipse.jdt.internal.compiler.apt.dispatch.BaseAnnotationProcessorManager.processAnnotations(BaseAnnotationProcessorManag er.java:159
) :134)org.eclipse.jdt.internal.compiler.Compiler.processAnnotations(Compiler.java:813)at
org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:432)
atorg.eclipse。 jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:364)at

org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile (AbstractImageBuilder.java:301)(org.eclipse
) のorg.eclipse.jdt.internal.core.builder.IncrementalImageBuilder.compile(IncrementalImageBuilder.java:329)jdt.internal.core.builder.IncrementalImageBuilder.build(IncrementalImageBuilder.java:134)at
org.eclipse.jdt.internal.core.builder.JavaBuilder.buildDeltas(JavaBuilder.java:265)atorg.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)at
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:199)at
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:239)at org.eclipse.core.internal.events.BuildManager $ 1.run(BuildManager.java:292)at org.eclipse.core.runtime .SafeRunner.run(SafeRunner.java:42)at
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:295)at
org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java :351)
org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:374)at
org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:143) atorg.eclipse
。 core.internal.events.AutoBuildJob.run(AutoBuildJob.java:241)at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

4

4 に答える 4

4

これは既知のEclipseのバグです。私が見つけた唯一の解決策は、Eclipseを再起動することです。アノテーションなしでコンパイルしてから再起動しなければならない場合があります。

于 2012-10-04T15:55:07.367 に答える
0

私の場合、注釈処理を再起動または無効にするだけでは機能しませんでした。このエラーが発生した2つのリクエストファクトリ(異なるプロジェクトにあります!)がありました。

  • myReqFacAはRequestFactoryを拡張します
  • myReqFacBはRequestFactoryを拡張します

リクエストファクトリインターフェイスの1つを削除することで、問題を解決しました。幸いなことに、インターフェースはもう必要ありませんでした。

しかし、ある日後、私は再び同じ問題を抱えています!

于 2013-02-07T12:21:29.770 に答える
0

同じ問題が発生しました。私が使用した回避策は、RequestFactoryサブクラス名の名前を変更することです(リファクタリング->名前の変更)。サブクラスの他の部分を変更しましたが、機能しません。コンパイルが成功したら、名前を以前の名前に戻します。

于 2013-06-20T21:42:48.270 に答える
0

GWTからRequestFactoryで同じ問題が発生し、「gwt-unitCache」フォルダーを削除して、後でプロジェクトを再度コンパイルすることで解決しました([プロジェクト]-> [クリーン...])。

おそらくAndroidの場合、生成されたある種のフォルダーを削除して、プロジェクトを再度コンパイルする必要があります。

于 2014-03-31T10:16:22.887 に答える