【databinding】Exception while handling step android.databinding.annotationprocessor.ProcessExpression

来源:互联网 发布:埙和陶笛的区别知乎 编辑:程序博客网 时间:2024/06/06 18:22

     最近一个新同事加入,他用的windows,拉代码之后跑不了,一直报错,看起来是databinding的问题。

Error:Execution failed for task ':app:compileBetaDebugJavaWithJavac'.> java.lang.RuntimeException: failure, see logs for details.Exception while handling step android.databinding.annotationprocessor.ProcessExpressions@6b544592 javax.xml.bind.UnmarshalException - with linked exception:[org.apache.xerces.impl.io.MalformedByteSequenceException: Invalid byte 3 of 3-byte UTF-8 sequence.]   at javax.xml.bind.helpers.AbstractUnmarshallerImpl.createUnmarshalException(AbstractUnmarshallerImpl.java:333)   at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.createUnmarshalException(UnmarshallerImpl.java:563)   at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:249)   at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:214)   at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:157)   at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:204)   at android.databinding.tool.store.ResourceBundle$LayoutFileBundle.fromXML(ResourceBundle.java:634)   at android.databinding.annotationprocessor.ProcessExpressions$IntermediateV2.appendTo(ProcessExpressions.java:278)   at android.databinding.annotationprocessor.ProcessExpressions.onHandleStep(ProcessExpressions.java:82)   at android.databinding.annotationprocessor.ProcessDataBinding$ProcessingStep.runStep(ProcessDataBinding.java:189)   at android.databinding.annotationprocessor.ProcessDataBinding$ProcessingStep.access$000(ProcessDataBinding.java:174)   at android.databinding.annotationprocessor.ProcessDataBinding.process(ProcessDataBinding.java:79)   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(JavacProcessingEnvironme

     于是google,说是使用了databinding的xml文件中有中文。奔溃ing。没办法只能全局搜索然后改成string引用。类似以下这些全部改掉就好了

android:text="@={‘¥’+viewModel.rechargeMoney}"
或者
android:text="@={‘-’+viewModel.rechargeMoney}"
又或者
android:text="@={‘退’+viewModel.rechargeMoney}"
 等等。。。

改成以下这种形式就可以了

android:text="@={@string/text+viewModel.rechargeMoney}"




原创粉丝点击