1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好这是RK3128 Android平台编译记录,使用环境如下:
1.Ubuntu16.04 LTS 2.gcc (使用gcc6.5,更高级版本python2.7.14存在编译问题) 1. 以及 rom 依赖选项在进行之前,首先需要确保环境编译。 1)环境安装项 sudo apt-get install git-core gnupg flex bison gperf libsd2-dev libesd0-devxgtk2.8 -dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev pngcrush schedtool libxml2 libxml2-utils xsltproc lzop libc6-dev schedtool g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline-gplv2-dev gcc-multilib libswitch- perl libssl1.0.0 libssl-dev 但是实际安装中,因为存在:libwxgtk2.8-dev lib32readline-gplv2-dev 所以没有已经 请使用: sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev pngcrush schedtool libxml2 libxml2-utils xsltproc lzop libc6-dev schedtool g++ -multilib lib32z1-dev lib32ncurses5-dev gcc-multilib libswitch-perl libssl1.0.0 libssl-dev添加 :libwxgtk2.8-dev sudo add-apt-repository ppa:nilarimogard/webupd8 sudo apt-get update sudo apt-get install libwxgtk2.8-dev 添加 :lib32readline-gplv2-dev sudo apt-get install lib32readline6-dev添加 :libbz-dev checkpolicy sudo apt-get install libbz2-dev sudo apt-get install checkpolicy 2)软件安装依赖项 系统编译需要使用k7,如果系统中可以打开-jjd版本,但 不是1.7版本,而是自带1.7版本(直接有一个作用),直接添加了一个作用,kd的时候 使用了jk7 。 export ANDROID_SET_JAVA_HOME=true 如果系统是14.04,安装源里面有open-jdk源码路径,但是没有16.04了。 ubuntu 14.04 sudo apt-get install openjdk-7-jre 或者sudo apt-get install openjdk-7-jdk ubuntu 16.04 sudo add-apt-repository ppa:openjdk-r/ppa sudo apt-get update sudo apt-get install openjdk-7- jdkjava存在多个版本的情况 配置 注意sudo update-alternatives --config java sudo update-alternatives --config javac 2.编译中遇到的错误 1)error: unsupported reloc 43 这个问题是由于从Ubuntu14.04环境换成了16.04,具体原因是使用clangart是遇到 的问题,为什么使用clang而导致不使用gcc,这里可以 参考一下方法,解决。https://github.com/gmacario/easy-jenkins/issues/88 libnativehelper/JniConstants.cpp:129:错误:不支持 reloc 43 libnativehelper/JniConstants.cpp:130:错误:不支持 reloc 43 libnativehelper/JniConstants.cpp:131 :错误:不支持 reloc 43 libnativehelper/JniConstants.cpp:132:错误:不支持 reloc 43 libnativehelper/JniConstants.cpp:133:错误:不支持 reloc 43 libnativehelper/JniConstants.cpp:134:错误:不支持 reloc 43 libnativehelper/JniConstants.cpp :135: 错误: 不支持的 reloc 43 libnativehelper/JniConstants.cpp:136: 错误: 不支持的 reloc 43 libnativehelper/JniConstants.cpp:137: 错误: 不支持的 reloc 43 libnativehelper/JniConstants.cpp:138: 错误: 不支持的 reloc 43 libnativehelper/JniConstants.cpp:139: 错误: 不支持 reloc 43 libnativehelper/JniConstants.cpp:140: 错误: 不支持 reloc 43 libnativehelper/toStringArray.cpp:21: 错误: 不支持 reloc 43 libnativehelper/toStringArray.cpp:21: 错误: 不支持reloc 43 libnativehelper/JniInvocation.cpp:40:错误:不支持 reloc 43 libnativehelper/JniInvocation.cpp:45:错误:不支持 reloc 43 libnativehelper/JniInvocation.cpp:165:错误:不支持 reloc 43 libnativehelper/JniInvocation.cpp:165:错误:不支持的 reloc 43 libnativehelper/JniInvocation.cpp:165:错误:不支持的 reloc 43 libnativehelper/JniInvocation.cpp:165:错误:不支持的 reloc 43 clang:错误:链接器命令失败,退出代码 1(使用 -v 查看调用) build/core/host_shared_library_internal.mk:44:目标“out/host/linux-x86/obj32/lib/libnativehelper.so”的配方失败 make: *** [out/host/linux-x86/obj32/lib/libnativehelper.so] 错误 1 make: *** Waiting for unfinished jobs.... make: *** wait: 没有子进程。 解决方法一:修改mk文件,source_android修改修改,源路径【这会Android源码】1.mk 文件 cd vim Android.common_build.mk //第119行 前: #主机。 ART_HOST_CLANG := false ifneq ($(WITHOUT_HOST_CLANG),true) # 默认情况下,主机构建使用 clang 以获得更好的警告。 ART_HOST_CLANG := true endif 修改后: #主持人。 ART_HOST_CLANG := false ifneq ($(WITHOUT_HOST_CLANG),false) # 默认情况下,主机构建使用 clang 以获得更好的警告。 ART_HOST_CLANG := true endif 2.cp文件 cp /usr/bin/ld.gold 3 .update一下 修改了上述代码之后,最好执行一次make update-api,在 解决方法二:通过环境禁止clang export WITHOUT_HOST_CLANG=false 2)public_api.txt:20: error 5: added public field android.Manifest .permission.BACKUP DroidDoc 耗时 87 秒。将文档写入 out/target/common/docs/api-stubs DroidDoc 需要 84 秒。将文档写入 out/target/common/docs/system-api-stubs 目标 Dex:TeleService 目标 Dex:电信 目标 Dex:TelephonyProvider 检查 API:checkpublicapi-last 检查 API:checkpublicapi-current 检查 API:checksystemapi-last 检查 API:checksystemapi-current frameworks/base/api/current.txt:20:错误 10:删除字段 android .Manifest.permission.BACKUP frameworks/base/api/current.txt:82:错误 10:删除字段 android.Manifest.permission.INVOKE_CARRIER_SETUP frameworks/base/api/current.txt:106:错误 10:删除字段 android.Manifest .permission.READ_PRIVILEGED_PHONE_STATE frameworks/base/api/current.txt:116:错误 10:删除字段 android.Manifest.permission.RECEIVE_EMERGENCY_BROADCAST ************************ ******** 您已尝试更改之前批准的 API。 要使这些错误消失,您有两种选择: 1) 您可以在上述 错误 中列出的方法等中添加“@hide”javadoc 注释。 2) 您可以通过执行以下命令来更新 current.txt: make update-api 要将修改后的 current.txt 提交到 Android 主存储库, 您需要获得批准。****************************** build/core/tasks/apicheck.mk:62: 目标'out/target/的配方common/obj/PACKAGING/checkpublicapi-current-timestamp' 失败make: *** [out/target/common/obj/PACKAGING/checkpublicapi-current-timestamp] 错误 38 make: *** Waiting for unfinished jobs.... 情况,需要修改一下system/core/libutils/String8.cpp 参考:https://android.googlesource.com/platform/system/core/+/dd060f01f68ee0e633e9cae24c4e565cda2032bd%5E%21 diff --git a/libutils/String8 .cpp b/libutils/String8.cpp 索引 9092cbc..3323b82 100644 --- a/libutils/String8.cpp +++ b/libutils/String8.cpp @@ -424,7 +424,7 @@ next = len ; } - memcpy(buf + 尾,buf + 索引 + 跳过,下一个 - 索引 - 跳过); + memmove(buf + 尾,buf + 索引 + 跳过,下一个 - 索引 - 跳过); 尾 += 下一个 - 索引 - 跳过; 索引=下一个; } 或者 sed -i '427s/memcpy/memmove/' ./system/core/libutils/String8.cpp 3.编译完成 再解决好所有出现的问题后,编译完成,出现: #### make completed successfully (26:32 (mm:ss)) #### TARGET_PRODUCT=rk312x TARGET_HARDWARE=rk30board IMG_TARGET=all , ota = withoutkernel system fileysystem是 ext4 'kernel/arch/arm/boot/zImage' -> '/android-workspace/android/out/target/product/rk312x/kernel' 在没有内核的情况下创建 boot.img... 完成。 使用内核创建 recovery.img 并且没有资源...完成。 创建 misc.img.... 完成。 创建system.img ...完成。 创建装载机...完成。 创建uboot.img ...完成。 创建resource.img ...完成。 创建 kernel.img ...完成。 创建参数...完成。 萤火虫使图像完成! |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
基于米尔瑞芯微RK3576核心板/开发板的人脸疲劳检测应用方案
498 浏览 0 评论
768 浏览 1 评论
667 浏览 1 评论
1893 浏览 1 评论
3138 浏览 1 评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 20:12 , Processed in 0.649933 second(s), Total 40, Slave 34 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号