AOSP编译问题

这篇具有很好参考价值的文章主要介绍了AOSP编译问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

编译android sdk

lunch sdk_x86_64-eng 命令报错

FAILED: out/soong/build.ninja
cd "$(dirname "out/host/linux-x86/bin/soong_build")" && BUILDER="$PWD/$(basename "out/host/linux-x86/bin/soong_build")" && cd / && env -i  "$BUILDER"     --top "$TOP"     --soong_out "out/soong"     --out "out"     -o out/soong/build.ninja --globListDir build --globFile out/soong/globs-build.ninja -t -l out/.module_paths/Android.bp.list --available_env out/soong/soong.environment.available --used_env out/soong/soong.environment.used.build Android.bp
error: packages/modules/RuntimeI18n/apex/Android.bp:67:1: dependency "art-bootclasspath-fragment" of "i18n-bootclasspath-fragment" missing variant:
  apex:com.android.art
available variants:
  os:android,arch:common
error: packages/modules/RuntimeI18n/apex/Android.bp:67:1: dependency "prebuilt_art-bootclasspath-fragment" of "i18n-bootclasspath-fragment" missing variant:
  apex:com.android.art
available variants:
  os:android,arch:common
05:10:29 soong bootstrap failed with: exit status 1

#### failed to build some targets (04:30 (mm:ss)) ####

解决:
修改对应文件:aosp/build/target/product/sdk_x86_64.mk,增加两行,重新编译

$(call inherit-product, $(SRC_TARGET_DIR)/product/sdk_phone_x86_64.mk)

# 增加此处两行
# Always build modules from source
PRODUCT_MODULE_BUILD_FROM_SOURCE := true

PRODUCT_NAME := sdk_x86_64

参考

问题:未安装rsync

/bin/bash: line 1: rsync: command not found

解决:安装rsync

sudo pacman -S rsync

问题:默认情况在linux编译系统 会开启odex的。

Fault message: Check failed: map.IsValid() Failed anonymous mmap((nil), 131072, 0x3, 0x22, -1, 0): Cannot allocate memory. See process maps in the log.
ERROR: Dex2oat failed to compile a boot image.It is likely that the boot classpath is inconsistent.Rebuild with ART_BOOT_IMAGE_EXTRA_ARGS="--runtime-arg -verbose:verifier" to see verification errors.
04:07:58 ninja failed with: exit status 1

#### failed to build some targets (13:29 (mm:ss)) ####

解决:编译前关闭dex2oat

export WITH_DEXPREOPT=false

问题:mke2fs参数导致

Creating regular file /data/aosp/out/soong/.temp/tmptQHrWf/content/apex_payload.img
Invalid filesystem option set: has_journal,extent,huge_file,flex_bg,metadata_csum,metadata_csum_seed,64bit,dir_nlink,extra_isize,orphan_file

AssertionError: Failed to execute: out/soong/host/linux-x86/bin/mke2fs -O ^has_journal -b 4096 -m 0 -t ext4 -I 256 -N 162 -U 7d1522e1-9dfa-5edb-a43e-98e3a4d20250 -E hash_seed=7d1522e1-9dfa-5edb-a43e-98e3a4d20250 /data/aosp/out/soong/.temp/tmptQHrWf/content/apex_payload.img 163M

解决:修改mke2fs的配置文件。

cp  /etc/mke2fs.conf /etc/mke2fs.conf.bak #备份
vim /etc/mke2fs.conf # 修改

将下面部分
ext4 = {
features = has_journal,extent,huge_file,flex_bg,metadata_csum,metadata_csum_seed,64bit,dir_nlink,extra_isize,orphan_file
}

修改为
ext4 = {
features = has_journal
}

后记:
开始以为是磁盘的xfs格式导致,后来利用Create a File Image Container or Filesystem in a File的方法测试后发现不是磁盘格式问题

测试步骤:用mke2fs制作img镜像文件

truncate --size=100M myfs.img
dd if=/dev/zero of=myfs.img count=204800
sudo mkfs.ext4 myfs.img
sudo mke2fs -t ext4 myfs.img

问题:python版本不匹配

FAILED: out/target/product/generic_x86_64/system-qemu.img
/bin/bash -c "(export SGDISK=out/host/linux-x86/bin/sgdisk SIMG2IMG=out/host/linux-x86/bin/simg2img;      device/generic/goldfish/tools/mk_combined_img.py -i out/target/product/generic_x86_64/system-qemu-config.txt -o out/target/product/generic_x86_64/system-qemu.img)"
  File "/data/aosp/device/generic/goldfish/tools/mk_combined_img.py", line 48
    print "'%s' cannot be converted to int" % (line[2])
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
10:17:24 ninja failed with: exit status 1

解决:修改python为python2

sudo pacman -S python2 # 安装python2
sudo ln -sb /usr/bin/python2 /usr/bin/python # 新建软链接,备份旧链接

问题:编译期间改变了out目录导致报错

emulator: WARNING: Couldn't find crash service executable /data/aosp/prebuilts/android-emulator/linux-x86_64/emulator64-crash-service

emulator: ERROR: No initial system image for this configuration!

解决:使用emulator -verbose查看详细报错信息,发现是由于使用export OUT_DIR=xx改变了目录,导致目录错乱。
使用evn查看当前环境变量,修改不正确的目录,例如下面,具体要看情况

export ANDROID_HOST_OUT=/data/aosp/out/host/linux-x86
export ANDROID_PRODUCT_OUT=/data/aosp/out/target/product/generic_x86_64
export ANDROID_HOST_OUT_TESTCASES=/data/aosp/out/host/linux-x86/testcases

问题:aidegen命令python版本不兼容

$ aidegen Settings -i s
 
MutableMapping = collections.MutableMapping
AttributeError: module 'collections' has no attribute 'MutableMapping'

解决:由于arch linux当前python版本是python3.10,从 python3.3开始,就使用 from collections.abc import MutableMapping 替代 from collections import Mapping, MutableMapping;
在 python3.10 上,彻底移除了 from collections import Mapping, MutableMapping。文章来源地址https://www.toymoban.com/news/detail-432312.html

yay -S python38 # 安装python3.8版本
ln -s /usr/bin/python3.8 /usr/bin/python3 #将python3指向python3.8

到了这里,关于AOSP编译问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 0.【AOSP+Pixel 5】Android13 开发环境搭建及源码下载、编译和刷机

    本人——入行Android没多久的萌新一枚。这个系列文章主要是我客制化Android系统的一些记录。以下是我的开发环境的信息: Android 版本:13 Android 设备:Pixel 5(欧版) 操作系统:Ubuntu 20.04.5 LTS(64位) 先更新一下软件源和软件 Ubuntu 20.04 LTS已经移除Python2,默认安装python3,但是

    2024年02月14日
    浏览(53)
  • Repo下载、编译AOSP源码:基于Ubuntu 21.04,android-12.1.0_r27

    最近准备更新专栏文章,AOSP源码自然也需要进行更新了,但这次不是为最新的android 13, 而是取android 12的最新tag version: android-12.1.0_r27,这应该是市面上的主流版本。 每次更新,自然也会遇到问题,所以就记录一下 另外,这次我们将直接配置本地服务器,而不是通过docker,让

    2023年04月26日
    浏览(43)
  • 鸿蒙剥离 AOSP 不兼容 Android 热门问题汇总,不吹不黑不吵

    上周发了一篇 《鸿蒙终于不套壳了?纯血 HarmonyOS NEXT 即将到来》的相关资讯,没想到大家「讨(fa)论(xie)」的热情很高,莫名蹭了一波流量,虽然流量对我来说也没什么用,但几百条评论也收获了一些比较有意思的问题,这里统一挑出来汇总下。 ⚠️PS, 不卖课不推广

    2024年02月12日
    浏览(42)
  • Android问题笔记 - 编译报错Task :app:compileDebugJavaWithJavac FAILED

    专栏分享 点击跳转=Unity3D特效百例 点击跳转=案例项目实战源码 点击跳转=游戏脚本-辅助自动化 点击跳转=Android控件全解手册 点击跳转=Scratch编程案例 点击跳转=软考全系列 众所周知,人生是一个漫长的流程,不断 克服困难 ,不断反思前进的过程。在这个过程中会产生很多对

    2024年02月17日
    浏览(50)
  • Android问题笔记-Android Studio编译报错:2 files found with path.....

    点击跳转=Unity3D特效百例 点击跳转=案例项目实战源码 点击跳转=游戏脚本-辅助自动化 点击跳转=Android控件全解手册 点击跳转=Scratch编程案例 点击跳转=软考全系列 专注于 Android/Unity 和各种游戏开发技巧,以及 各种资源分享 (网站、工具、素材、源码、游戏等) 有什么需要欢

    2024年02月10日
    浏览(39)
  • Android问题笔记三十四:Android Studio编译报错:2 files found with path.....

    点击跳转=Unity3D特效百例 点击跳转=案例项目实战源码 点击跳转=游戏脚本-辅助自动化 点击跳转=Android控件全解手册 点击跳转=Scratch编程案例 点击跳转=软考全系列 专注于 Android/Unity 和各种游戏开发技巧,以及 各种资源分享 (网站、工具、素材、源码、游戏等) 有什么需要欢

    2024年02月07日
    浏览(41)
  • Kali2022.3虚拟机编译AOSP(从Kali安装到完成Aosp编译详细记录)

    测试的硬件环境(轻薄本):cpu:Amd r5 4600u,内存:16g,外接固态硬盘盒子。测试(下载和编译Android10)结果:下载时长为0.5-1h,编译时长接近5h; 虚拟机环境:VMware Workstation Pro17,镜像为:Kali-2022.3-installer-amd64; 安装步骤尽可能的详细一些,按照下方图示进行操作即可,无需做改

    2024年02月09日
    浏览(31)
  • AOSP安卓源码编译

    继上次安卓源码下载篇以后已经过了很久了 这里需要补充一些内容,在现在安卓源码是建议只下载自己需要的某个版本,这样更快 关于下载分支的编号,可以在清华镜像分支列表里面找的到 在repo init之后就是漫长的repo sync了,同步代码库一般来说网络通常都没啥问题,可以

    2024年02月12日
    浏览(41)
  • 构建docker编译AOSP

    参考:github 在根目录下执行: --build-arg 指定编译参数:用户名为 test ,密码是 1234 ,可自定义 imagename是镜像名,V1是TAG,可自定义 或者使用默认用户名 zhangsan ,密码 123456 ; 运行结束后,可以查看是否生成docker镜像: -it 指示以交互式终端进入容器 my_docker是容器的名称,可

    2024年02月08日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包