【问题标题】:Android Data binding 'Error:cannot generate view binders java.lang.NullPointerException'Android 数据绑定“错误:无法生成视图绑定器 java.lang.NullPointerException”
【发布时间】:2017-06-19 04:11:12
【问题描述】:

由于数据绑定,我在制作项目时遇到错误。 我无法理解他们的日志和异常堆栈跟踪。

整个等级控制台错误说

FAILURE:构建失败并出现异常。

  • 出了什么问题: 任务 ':app:compileFlavorSuperwiseDebugJavaWithJavac' 执行失败。

    java.lang.RuntimeException: 失败,详情请查看日志。 无法生成视图活页夹 java.lang.NullPointerException 在 android.databinding.tool.reflection.ModelMethod.isBoxingConversion(ModelMethod.java:155) 在 android.databinding.tool.store.SetterStore.isBetterParameter(SetterStore.java:946) 在 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

消息日志这样说

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.

从我读到的内容中,我确定了三元运算符中的原始数据类型转换。 我仍然不知道是哪个模型/绑定导致它。

代码中有很多 Spinner,Edittext 与 InverBinding Adapter 和 BindingAdaptor 的绑定。我知道没有代码很难指出错误。但是我的整个项目都带有数据绑定。我不知道该发哪一个。你能解释一下我怎么知道编译失败的地方吗?

谢谢

【问题讨论】:

  • gradle 控制台报错这样结束。请查看更新的错误消息以获取成绩和消息日志。
  • @xrnd 您的第一条评论应该包含在您的问题中。

标签: java android exception android-databinding


【解决方案1】:

我刚刚找到了如何通过切换 gradle 版本来获取错误详细信息。 我只是从

更改了年级版本
classpath 'com.android.tools.build:gradle:2.2.0'   

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

这篇文章也帮助了我InversDataBinding Support

希望这对某人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-25
    • 2017-03-23
    • 1970-01-01
    • 2020-10-10
    • 2018-09-05
    • 2017-02-22
    • 1970-01-01
    • 2017-07-30
    相关资源
    最近更新 更多