编译Chromium Android WebView过程记录 |
您所在的位置:网站首页 › android集成chromium › 编译Chromium Android WebView过程记录 |
系统: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 |