androidannotations / androidannotations

Fast Android Development. Easy maintainance.
Other
11.08k stars 2.35k forks source link

NPE in AptCompilationParticipant.addJava6GeneratedFile() #443

Closed japgolly closed 11 years ago

japgolly commented 11 years ago

Hi. AndroidAnnotations has basically stopped working in my Eclipse. No code is being generated anymore.

I had this problem once before and it turned out one of my res/values XML files was invalid. This time, I've reverted all code changes and everything is fine from the command line with Maven. Only Eclipse is broken now.

The error is:

Please report an issue on AndroidAnnotations, with the following content: 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:301)
    at sun.nio.cs.StreamEncoder.close(StreamEncoder.java:130)
    at java.io.OutputStreamWriter.close(OutputStreamWriter.java:216)
    at java.io.FilterWriter.close(FilterWriter.java:87)
    at java.io.BufferedWriter.close(BufferedWriter.java:248)
    at java.io.PrintWriter.close(PrintWriter.java:295)
    at com.sun.codemodel.JFormatter.close(JFormatter.java:137)
    at com.sun.codemodel.JPackage.build(JPackage.java:439)
    at com.sun.codemodel.JCodeModel.build(JCodeModel.java:311)
    at com.googlecode.androidannotations.generation.CodeModelGenerator.generate(CodeModelGenerator.java:42)
    at com.googlecode.androidannotations.AndroidAnnotationProcessor.generateSources(AndroidAnnotationProcessor.java:587)
    at com.googlecode.androidannotations.AndroidAnnotationProcessor.processThrowing(AndroidAnnotationProcessor.java:369)
    at com.googlecode.androidannotations.AndroidAnnotationProcessor.process(AndroidAnnotationProcessor.java:341)
    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:110)
    at org.eclipse.jdt.internal.compiler.apt.dispatch.BaseAnnotationProcessorManager.processAnnotations(BaseAnnotationProcessorManager.java:159)
    at org.eclipse.jdt.internal.apt.pluggable.core.dispatch.IdeAnnotationProcessorManager.processAnnotations(IdeAnnotationProcessorManager.java:134)
    at org.eclipse.jdt.internal.compiler.Compiler.processAnnotations(Compiler.java:820)
    at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:434)
    at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:365)
    at org.eclipse.jdt.internal.core.builder.IncrementalImageBuilder.compile(IncrementalImageBuilder.java:329)
    at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:302)
    at org.eclipse.jdt.internal.core.builder.IncrementalImageBuilder.build(IncrementalImageBuilder.java:134)
    at org.eclipse.jdt.internal.core.builder.JavaBuilder.buildDeltas(JavaBuilder.java:265)
    at 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)
    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)
    at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:374)
    at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:143)
    at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:241)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
    PlayerCrudlActivity.java    /android-free/src/main/java/golly/cardboard/ui/activity line 83 Annotation Problem (Java 6 processor)

The line 83 it's referring to is this:

    @OnActivityResult(REQCODE_PLAYER_EDITOR)
    void onPlayerChangedSelected(int resultCode, @Nullable Intent data) {

Thinking it might not like the @Nullable annotation (despite is being fine for a month), when I comment out that method I get a similar error:

Please report an issue on AndroidAnnotations, with the following content: 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:301)
    at sun.nio.cs.StreamEncoder.close(StreamEncoder.java:130)
    at java.io.OutputStreamWriter.close(OutputStreamWriter.java:216)
    at java.io.FilterWriter.close(FilterWriter.java:87)
    at java.io.BufferedWriter.close(BufferedWriter.java:248)
    at java.io.PrintWriter.close(PrintWriter.java:295)
    at com.sun.codemodel.JFormatter.close(JFormatter.java:137)
    at com.sun.codemodel.JPackage.build(JPackage.java:439)
    at com.sun.codemodel.JCodeModel.build(JCodeModel.java:311)
    at com.googlecode.androidannotations.generation.CodeModelGenerator.generate(CodeModelGenerator.java:42)
    at com.googlecode.androidannotations.AndroidAnnotationProcessor.generateSources(AndroidAnnotationProcessor.java:587)
    at com.googlecode.androidannotations.AndroidAnnotationProcessor.processThrowing(AndroidAnnotationProcessor.java:369)
    at com.googlecode.androidannotations.AndroidAnnotationProcessor.process(AndroidAnnotationProcessor.java:341)
    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.compiler.apt.dispatch.BaseAnnotationProcessorManager.processAnnotations(BaseAnnotationProcessorManager.java:159)
    at org.eclipse.jdt.internal.apt.pluggable.core.dispatch.IdeAnnotationProcessorManager.processAnnotations(IdeAnnotationProcessorManager.java:134)
    at org.eclipse.jdt.internal.compiler.Compiler.processAnnotations(Compiler.java:820)
    at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:434)
    at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:365)
    at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.compile(BatchImageBuilder.java:178)
    at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:302)
    at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.build(BatchImageBuilder.java:60)
    at org.eclipse.jdt.internal.core.builder.JavaBuilder.buildAll(JavaBuilder.java:254)
    at org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:173)
    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)
    at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:374)
    at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:143)
    at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:241)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
    TempActivity.java   /android-free/src/main/java/golly/cardboard/ui/activity/tmp line 106    Annotation Problem (Java 6 processor)

This time the code it's referring too looks like this:

    @AfterViews
    protected void init() {

Whaaaaaat? Weird.

japgolly commented 11 years ago

Bah! Found a simple workaround: restart Eclipse. lol.

Still, this wouldn't have happened pre-21/12/12. I think this issue is what the Mayans were really on about.

pyricau commented 11 years ago

LOL :+1: regarding the Mayans :fast_forward: This issue has been reported a few times already (see #168), and restarting Eclipse always works. It's a known Eclipse bug. Closing the issue, I don't think there's anything we can do about this.