编译Chromium Android WebView过程记录

您所在的位置:网站首页 android集成chromium 编译Chromium Android WebView过程记录

编译Chromium Android WebView过程记录

2024-02-04 10:49| 来源: 网络整理| 查看: 265

系统:Ubuntu 18.04.5 LTS

 

git配置 git config --global user.name "zaooo" git config --global user.email "[email protected]"

克隆 depot_tools存储库:

git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git 设置环境变量

设置后可以使用gclient命令

export PATH="$PATH:/绝对路径/depot_tools" source ~/.bashrc

 

拉取 android 版本的源码 fetch --nohooks android

如果只拉取最新

fetch --nohooks --no-history android

如果中途断开,执行命令继续

gclient sync --nohooks 一定要自动完成checkout自动退出脚本 ==================以下拉取完成,切换src目录==================

查看分支

git fetch --tags

切换版本分支同步(上面没有使用--no-history命令)

方式一 git checkout -b stable_77 tags/77.0.3865.90 gclient sync --with_branch_heads --nohooks --job 16 方式二 gclient sync --with_branch_heads -r 52.0.2743.100 gclient sync --with_branch_heads -r 83.0.4103.120 编译环境: sudo apt-get install openjdk-8-jdk sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386 sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev sudo apt-get install git-core gnupg flex bison gperf build-essential //sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib //sudo apt-get install libc6-dev-i386 sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev //sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4 sudo apt-get install lib32z-dev ccache sudo apt-get install lib32ncurses5 sudo apt-get install libncurses5 build/install-build-deps-android.sh //如果切换版本需要重新执行以下命令安装依赖 gclient runhooks

 

安装无法定位  sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev sudo vim /etc/apt/sources.list  //在行尾添加如下两行的内容 deb http://us.archive.ubuntu.com/ubuntu/ xenial main universe deb-src http://us.archive.ubuntu.com/ubuntu/ xenial main universe

cpu对应 arm64-v8a          arm64 armeabi-v7a      arm x86                         x86 x86_64                 x64

配置编译命令:

这里使用arm64 cpu类型配置,若编译其他,只需要改cpu类型

gn gen out/Release_arm64 --args='target_os="android" target_cpu="arm64" is_debug=false is_official_build=true enable_nacl=false is_chrome_branded=false use_official_google_api_keys=false enable_resource_whitelist_generation=true ffmpeg_branding="Chrome" proprietary_codecs=true enable_remoting=true

如果上面配置命令执行没反应,可以先创建项目输出路径,再配置

gn gen out/Release_arm64

创建完成输出:

Done. Made 13575 targets from 2257 files in 4392ms

此时可以手动修改配置文件:/src/out/Release_arm64/args.gn

target_os = "android" target_cpu = "arm64" is_debug = false is_official_build = true enable_nacl = false is_chrome_branded = false use_official_google_api_keys = false enable_resource_whitelist_generation = true ffmpeg_branding = "Chrome" proprietary_codecs = true enable_remoting = true

 

编译命令: ninja -C out/Release_arm64/ system_webview_apk -j12

Release_arm64是输出路径,如果上面配置命令执行完成后,编译时不能修改,否则报错

官方android版本编译命令

# For L+ (21+) devices (if on N-P, see "Important Notes for N-P") autoninja -C out/Default system_webview_apk # For N-P (24-28) devices (not including TV/car devices) autoninja -C out/Default monochrome_public_apk # For Q+ (29+) devices autoninja -C out/Default trichrome_webview_apk

 

编译过程经常会遇到一些报错,仔细看log输出还是很容易解决的

问题整理 git网络错误 git config --global http.proxy 'socks5://127.0.0.1:1089' git config --global https.proxy 'socks5://127.0.0.1:1089'

跳过chromeos fonts检查 ./build/install-build-deps.sh --no-chromeos-fonts

chromium编译google_play_services报错文件 google_play_service错误解决: 下载对应版本文件 如文件名:google_play_services_8487000.zip 查看google_play_service版本:/src/build/android/play_services/config.json文件 {   "version_number": 8487000,   "version_xml_path": "res/values/version.xml" }

 

 

Error: 78>  //同步错误 78> ____ src/v8 at c5efc5092fabb0a45351c7b0031b14ed07d3c696 78>     You have unstaged changes. 78>     Please commit, stash, or reset.

解决

    删除删除 depot_tools并克隆新版本,而不更改其位置。

    rm -rf depot_tools     git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

    清理 src通过递归访问每个项目, Chromium项目目录中的所有项目。 还要 检查 master分支 清洁后 :

  

export HM=$PWD   find `pwd` -type d -name ".git" | sed  s/.git$//g |  \     while read r; do cd $r; git reset --hard HEAD; git checkout master; done

 

    更新所有分支并 gclient sync再次

    git rebase-update && gclient sync

    如果一切顺利,则可以重建Chromium代码。

 

参考:

  (官方Android webview 编译说明)https://chromium.googlesource.com/chromium/src/+/HEAD/android_webview/docs/aosp-system-integration.md (官方)https://chromium.googlesource.com/chromium/src/+/master/docs/android_build_instructions.md  (官方分支)https://chromium.googlesource.com/chromium/src.git  (官方库,编译缺少的文件可以在此找到) https://maven.google.com/web/index.html

https://blog.csdn.net/a957666743/article/details/80061159

 

 

 

 

 

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3