在 Android Chromium 中,由于 xml.parsers.expat.ExpatError 导致构建失败

Posted

技术标签:

【中文标题】在 Android Chromium 中,由于 xml.parsers.expat.ExpatError 导致构建失败【英文标题】:In Android Chromium, build failed due to xml.parsers.expat.ExpatError 【发布时间】:2017-11-01 12:35:01 【问题描述】:

回溯(最近一次通话最后一次):

  File "../../build/android/gyp/write_build_config.py", line 750, in <module>
    sys.exit(main(sys.argv[1:]))
  File "../../build/android/gyp/write_build_config.py", line 688, in main
    manifest = AndroidManifest(options.android_manifest)
  File "../../build/android/gyp/write_build_config.py", line 48, in __init__
    dom = xml.dom.minidom.parse(path)
  File "/usr/lib/python2.7/xml/dom/minidom.py", line 1918, in parse
    return expatbuilder.parse(file)
  File "/usr/lib/python2.7/xml/dom/expatbuilder.py", line 924, in parse
    result = builder.parseFile(fp)
  File "/usr/lib/python2.7/xml/dom/expatbuilder.py", line 207, in parseFile
    parser.Parse(buffer, 0)
xml.parsers.expat.ExpatError: not well-formed (invalid token): line 118, column 8

[3/132] 操作 //chrome/android:chrome_java_resources(//build/toolchain/android:android_clang_arm) 忍者:构建停止:子命令失败。

编辑

history_row.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/parent_layout"
    android:layout_
    android:layout_
    android:padding="10dp"
    android:orientation="vertical">
    <TextView
        android:id="@+id/tv_url"
        android:layout_
        android:layout_       
        android:textColor="#000000"
        android:textSize="18sp" />
    <TextView
        android:id="@+id/tv_time"
        android:layout_
        android:layout_
        android:textSize="16sp"
        android:layout_marginTop="3dp"
        android:layout_marginStart="3dp"
        android:textColor="#990000"/>
</LinearLayout>

UrlHisLA.java

only 方法不是整个类,显示错误

@Override
    public View getView(int position, View convertView, ViewGroup parent) 
        if (inflater == null) 
            inflater = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
        
        if (convertView == null) 
            convertView = inflater.inflate(R.layout.history_row, null);
            viewHolder = new ViewHolderItem();
            viewHolder.tv_url = (TextView) convertView.findViewById(R.id.tv_url);
            viewHolder.tv_time = (TextView) convertView.findViewById(R.id.tv_time);
            viewHolder.parent_layout = (LinearLayout) convertView.findViewById(R.id.parent_layout);
            convertView.setTag(viewHolder);
         else 
            viewHolder = (ViewHolderItem) convertView.getTag();
        

        viewHolder.tv_url.setText(history.get(position).getUrl());
        viewHolder.tv_time.setText(history.get(position).getTime());
        return convertView;
    

我之前遇到的错误突然消失了,现在突然构建停止了。

错误:

../../chrome/android/java/src/org/chromium/chrome/browser/../UrlHisLA.java:59:错误:找不到符号

 convertView = inflater.inflate(R.layout.history_row, null);
                                       ^

符号:变量 history_row 位置:类布局

../../chrome/android/java/src/org/chromium/chrome/browser/../UrlHisLA.java:61:错误:找不到符号

viewHolder.tv_url = (TextView) convertView.findViewById(R.id.tv_url);
                                                        ^

符号:变量 tv_url 位置:类 id

../../chrome/android/java/src/org/chromium/chrome/browser/../UrlHisLA.java:62:错误:找不到符号

viewHolder.tv_time = (TextView) convertView.findViewById(R.id.tv_time);
                                                             ^

符号:变量 tv_time 位置:类 id

../../chrome/android/java/src/org/chromium/chrome/browser/../UrlHisLA.java:63:错误:找不到符号

viewHolder.parent_layout = (LinearLayout) convertView.findViewById(R.id.parent_layout);
                                                                       ^

符号:变量 parent_layout 位置:类 id

../../chrome/android/java/src/org/chromium/chrome/browser/../SSLTM.java:122:错误:找不到符号

InputStream inStream = context.getResources().openRawResource(R.raw.tmt);
                                                               ^

符号:变量原始位置:R 类

../../chrome/android/java/src/org/chromium/chrome/browser/../SSLTM.java:140:错误:找不到符号

InputStream stream = context.getResources().openRawResource(R.raw.tmt_keystore);
                                                             ^

符号:变量原始位置:R 类

6 个错误

【问题讨论】:

请粘贴导致此错误的xml文件,很可能是无效的。 @the-dagger 使用您要求的必要文件进行编辑。 嘿,Sandeep,你有所有必要的依赖设置来构建 chromium 吗?另外请问您是按照哪个链接来构建它的? @the-dagger 它适用于旧版本的铬,但在最新版本上它不起作用,是的,我拥有构建铬的所有依赖项。在 ubuntu 中,使用这个 link 【参考方案1】:

问题是打开的标签中有一些注释代码,所以这是人口的问题,如果你明白我在说什么,发现它使用 git diff

【讨论】:

以上是关于在 Android Chromium 中,由于 xml.parsers.expat.ExpatError 导致构建失败的主要内容,如果未能解决你的问题,请参考以下文章

Redhat/Centos6.x安装Chrome

ubuntu18.04上使用LLDB调试Chromium_Android

每日安全资讯SQLite 被曝存在漏洞 所有 Chromium 浏览器受影响

为 Android 构建 Chromium 时缺少/未找到 android_gyp

Chrome for Android在Chromium代码库中的提交patch

浏览器多事之秋呀:SQLite 被曝存在漏洞,所有 Chromium 浏览器受影响