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:
<
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"
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.
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.
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
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: