Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NPE during compilation in Android Studio #24

Closed
AlexKorovyansky opened this issue Sep 2, 2014 · 3 comments
Closed

NPE during compilation in Android Studio #24

AlexKorovyansky opened this issue Sep 2, 2014 · 3 comments
Labels
Milestone

Comments

@AlexKorovyansky
Copy link

I'm trying to use Immutables for Android Project. But it crashes with NPE during compilation. Steps to reproduce:

1) Create new Android Project in Android Studio 0.8.8 (with default parameters)

2) Add to build.gradle

android {
..
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_6
        targetCompatibility JavaVersion.VERSION_1_6
    }
}

dependencies {
    ...
    compile 'org.immutables:annotation:0.16'
    provided 'org.immutables:generate-tool:0.16'
}

3) Add dummy data class:

@GenerateImmutable
public abstract class Data {
    public abstract int number();
}

4) Click Run

Expected Behaviour: Successful compilation
Actual Result: NullPointerException during compilation:

22:38:51.122 [ERROR] [org.gradle.BuildExceptionReporter] Caused by: java.lang.NullPointerException
22:38:51.122 [ERROR] [org.gradle.BuildExceptionReporter]    at org.immutables.generate.internal.processing.Processor.inspectGenerateType(Processor.java:99)
22:38:51.122 [ERROR] [org.gradle.BuildExceptionReporter]    at org.immutables.generate.internal.processing.Processor.processAnnotations(Processor.java:82)
22:38:51.122 [ERROR] [org.gradle.BuildExceptionReporter]    at org.immutables.generate.internal.processing.Processor.process(Processor.java:70)
22:38:51.123 [ERROR] [org.gradle.BuildExceptionReporter]    at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:793)
22:38:51.123 [ERROR] [org.gradle.BuildExceptionReporter]    at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:722)
22:38:51.123 [ERROR] [org.gradle.BuildExceptionReporter]    at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1700(JavacProcessingEnvironment.java:97)
22:38:51.124 [ERROR] [org.gradle.BuildExceptionReporter]    at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1029)
22:38:51.124 [ERROR] [org.gradle.BuildExceptionReporter]    at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1163)
22:38:51.124 [ERROR] [org.gradle.BuildExceptionReporter]    at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1108)
22:38:51.124 [ERROR] [org.gradle.BuildExceptionReporter]    at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:824)
22:38:51.125 [ERROR] [org.gradle.BuildExceptionReporter]    at com.sun.tools.javac.main.Main.compile(Main.java:439)
22:38:51.125 [ERROR] [org.gradle.BuildExceptionReporter]    ... 68 more

Environment: Android Studio 0.8.8, OS X 10.9.4, Java 7 (1.7.0_60)

Do you support Android? Any ideas how to fix this error?

@elucash elucash added the bug label Sep 2, 2014
@elucash elucash added this to the 0.17 milestone Sep 2, 2014
@elucash
Copy link
Member

elucash commented Sep 2, 2014

Hi, never tried with Android, sorry. But I expect it should work.
I will check this and try to fix, already have some ideas why this might happen.

@elucash
Copy link
Member

elucash commented Sep 8, 2014

Got Immutables to work on Android Studio v0.8.6. I was unable to reproduce the exact same exception, but a lot of similar problems were encountered and fixed.

  • Use newly released version of Immutables 0.18 or higher
    • Fixes were made to generate classes in default package etc
  • Change to JavaVersion.VERSION_1_7. Currently Immutables processor require java 7
  • Add artifact for annotations that are missing in Android SDK
    • compile 'javax.annotation:jsr250-api:1.0'
  • Generated classes should be added to source folders. Here I might consult projects that may have solved how to do this:
    • see Android Annotations
    • see Auto Value/Parcel for android frankiesardo/auto-parcel
      • classpath 'com.neenbedankt.gradle.plugins:android-apt:+'
      • apply 'android-apt'

It is difficult to make general statement about Android/studio support, but I was able to see the successful compilation of generated classes in Android studio. I hope this helps if you try it!

P.S. If you looking for something like @ExcludeAnnotation, Immutables has @GenerateAuxiliary

@elucash elucash modified the milestones: 1.1, 0.18 Oct 30, 2014
@elucash elucash modified the milestones: 1.0, 1.1 Nov 9, 2014
@elucash
Copy link
Member

elucash commented Nov 9, 2014

Compiles successfully on Android Studio v0.8.6, verified with version 1.0.1
Checklist

  • JavaVersion.VERSION_1_7
  • apply plugin 'android-apt'
  • compile 'javax.annotation:jsr250-api:1.0'

@elucash elucash closed this as completed Nov 9, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants