android databinding error:Execution failed for task ':app:dataBindingProcessLayoutsDebug'

后端 未结 5 1123
不思量自难忘°
不思量自难忘° 2021-01-02 18:06

my partner in ours\' project use android databinding.in my pc had error,but in his mac not error.i cant resolve this program.please help!! it\'s my build gradle:

<         


        
相关标签:
5条回答
  • 2021-01-02 18:08

    I also had this error. In my case I there was a redundant xml header at the bottom of a layout file.

    Try removing the whitespace (or removing the header), changing:

        <?xml version="1.0" encoding="utf-8"?>
    <layout xmlns:android="http://schemas.android.com/apk/res/android"
    

    to...

    <?xml version="1.0" encoding="utf-8"?>
    <layout xmlns:android="http://schemas.android.com/apk/res/android"
    
    0 讨论(0)
  • 2021-01-02 18:12

    Same situation! My colleagues have no troubles with project on Linux and Mac, but I couldn't built it on Windows.

    Finally after 3 days trying to localise exception, I've found 2 layouts causes an error.

    In my case trouble was with big cyrillic symbol "И" in android:text attribute databinding layout.

    0 讨论(0)
  • 2021-01-02 18:20

    I have the same problem, and I finally found the solution.
    I found that there is a layout xml file was written like that:

    <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text='@{"年龄 " + String.valueOf(user.age)}'/>
    

    and then it cannot built on Windows platform, but it can built on Mac OS X platform, I think its a bug of Android Data Binding, so my temporary solution is:
    don't writing any character in @{} section, use string reference instead. (in my case, its replace as android:text='@{ @string/age_text + String.valueOf(user.age) }'/>)
    hope it helps you.

    0 讨论(0)
  • 2021-01-02 18:23

    Suffered the same problem for one day, finally found out the root cause. Andoid gradle plugin does not handle the encoding with Byte order mark (BOM) well. It is a encoding reading problem. If the file is saved in UTF-8 BOM format, Android gradle tool will detect the encoding as “UTF-8” with UniversalDetector library. The class android.databinding.tool.store.LayoutFileParser will read like this:

    InputStreamReader reader = new InputStreamReader(fin, “UTF-8”);
    

    The first character returned by reader.read() is 0xfeff. Yes it is the ‘?’ in error message line 1:0 mismatched input '?' expecting {COMMENT, SEA_WS, '<', PI}.

    Refer the magic number of BOM at https://en.wikipedia.org/wiki/Byte_order_mark

    How UniversalDetector works at http://chardet.readthedocs.io/en/latest/how-it-works.html

    0 讨论(0)
  • 2021-01-02 18:30

    I had the same kind of problem with this log:

    line 1:0 extraneous input '' expecting {COMMENT, SEA_WS, '<', PI}
    

    This was super strange to me, no real feedback. To solve it:

    1. Created new layout resource files
    2. Copy and paste the content of the original ones leaving out just the first character
    3. Adding it myself in the new file.
    0 讨论(0)
提交回复
热议问题