Search code examples
javaandroidexceptionandroid-databinding

Android Data binding 'Error:cannot generate view binders java.lang.NullPointerException'


I am facing Error while making the project due to Data binding. I fail to understand their logs and the Exception stack trace.

The Entire grade console error says

FAILURE: Build failed with an exception.

  • What went wrong: Execution failed for task ':app:compileFlavorSuperwiseDebugJavaWithJavac'.

    java.lang.RuntimeException: failure, see logs for details. cannot generate view binders java.lang.NullPointerException at android.databinding.tool.reflection.ModelMethod.isBoxingConversion(ModelMethod.java:155) at android.databinding.tool.store.SetterStore.isBetterParameter(SetterStore.java:946) at android.databinding.tool.store.SetterStore.getBestSetter(SetterStore.java:838)

.. ... .....

at android.databinding.tool.store.SetterStore.getSetterCall(SetterStore.java:672)
at android.databinding.tool.Binding.getListenerParameter(Binding.java:164)
at android.databinding.tool.CompilerChef.sealModels(CompilerChef.java:200)
at android.databinding.annotationprocessor.ProcessExpressions.writeResourceBundle(ProcessExpressions.java:149)
at android.databinding.annotationprocessor.ProcessExpressions.onHandleStep(ProcessExpressions.java:82)
at android.databinding.annotationprocessor.ProcessDataBinding$ProcessingStep.runStep(ProcessDataBinding.java:154)
at android.databinding.annotationprocessor.ProcessDataBinding$ProcessingStep.access$000(ProcessDataBinding.java:139)
at android.databinding.annotationprocessor.ProcessDataBinding.process(ProcessDataBinding.java:66)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:794)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:705)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1800(JavacProcessingEnvironment.java:91)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
android.databinding.annotationprocessor.ProcessExpressions.onHandleStep(ProcessExpressions.java:85)
at android.databinding.annotationprocessor.ProcessDataBinding$ProcessingStep.runStep(ProcessDataBinding.java:154)
at android.databinding.annotationprocessor.ProcessDataBinding$ProcessingStep.access$000(ProcessDataBinding.java:139)
at android.databinding.annotationprocessor.ProcessDataBinding.process(ProcessDataBinding.java:66)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:794)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:705)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1800(JavacProcessingEnvironment.java:91)
at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1035)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1176)
at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1170)
at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:856)
at com.sun.tools.javac.main.Main.compile(Main.java:523)
... 90 more

Message log says this

Error:cannot generate view binders java.lang.NullPointerException
Error:java.lang.RuntimeException: java.lang.RuntimeException:
failure, see logs for details.
Error:java.lang.RuntimeException: failure, see logs for details.

from what I read I have made sure of primitive data type conversions in ternary operator. I still don't know which model/ binding is causing it.

The code has lot of Spinner,Edittext binding with InverBinding Adaptor and BindingAdaptor. I know without code its hard to point out error. But I have my whole project with data binding. I don't know which one to post. Can u shed some light on how would I know where the compilation is failing ?

Thanks


Solution

  • I have just found how to get the error details by switching gradle version. I simply changed grade version from

    classpath 'com.android.tools.build:gradle:2.2.0'   
    

    to

    classpath 'com.android.tools.build:gradle:2.0.0'
    

    This post helped me too InversDataBinding Support

    hope this helps someone.