移植第三方应用出现的一些错误

本文记录了在将第三方应用移植到Android 7.1过程中遇到的错误及解决办法,包括编译错误(如-fno-rtti)、类型不完整、 UnsatisfiedLinkError与库文件问题等,提供了相应的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在移植一个第三方应用到android7.1中,记录一下踩到的那些坑,用于后续查阅!

1.cannot use typeid with -fno-rtti

编译可执行二进制文件时,报错如下:

boost/function/function_base.hpp:515:62: error: cannot use typeid with -fno-rtti
              if (BOOST_FUNCTION_COMPARE_TYPE_ID(check_type, BOOST_SP_TYPEID(F))

由于android7.1编译默认带上 -fno-rtti 的编译选项,故需要在.mk文件加上如下选项:

2.field has incomplete type 'struct sockaddr'

编译库文件的时候,遇到如下错误:

查阅资料,发现是少了头文件,在对应的文件中加上即可:

#include <sys/types.h>
#include <sys/socket.h>
 

持续更新中

续:

04.07:继续上次的移植,新出现问题:

HddM

### 将第三方ROM移植到搭载澎湃芯片的手机 #### 设备准备与环境搭建 为了成功将第三方ROM移植到搭载澎湃芯片的设备上,需先确保拥有必要的硬件和软件资源。这包括但不限于目标设备本身、一台用于开发的计算机以及相应的驱动程序和支持工具。 对于RT-Thread操作系统而言,在嵌入式开源社区有着丰富的经验和技术积累[^1]。然而值得注意的是,RT-Thread主要应用于物联网领域的小型化智能终端产品中,并不是常见的智能手机所使用的Android或其他大型移动操作系统之一;因此关于具体针对搭载澎湃处理器系列产品的第三方ROM适配工作可能并不适用于RT-Thread平台。 #### 获取源码与编译配置 如果计划基于Android系统进行ROM定制,则需要获取官方AOSP(Android Open Source Project)源代码库或者是小米公司提供的MIUI ROM源代码作为基础版本。接着按照官方文档说明完成构建环境设置并下载对应分支标签下的全部文件。 由于不同型号之间存在架构差异,还需要特别关注CPU指令集兼容性和内核模块的支持情况。对于采用自研SoC方案如澎湃S1/S2这样的特殊机型来说,往往涉及到更多私有化的接口定义和服务实现细节,这些都需要开发者自行探索解决办法。 #### 修改启动加载器与分区表结构 在实际操作过程中,修改Bootloader引导程序可能是不可避免的一个环节。这是因为大多数厂商都会对出厂固件施加一定的安全机制限制,防止未经授权的操作行为发生。而要绕过此类保护措施通常意味着解锁BL权限甚至刷写全新的Fastboot镜像来替代原有的那一套逻辑控制流程。 与此同时,重新规划存储介质内部的空间布局同样重要——即调整EFS/MBR/GPT等格式描述符参数值以适应新系统的安装需求。此部分改动建议参照同类案例分享资料来进行实践尝试。 #### 测试验证与优化改进 最后一步就是进行全面的功能测试了。从最基本的开机画面显示正常与否到最后一个应用程序能否稳定运行都应当逐一排查确认。期间难免会遇到各种各样的Bug或者性能瓶颈问题等待着被修复完善。此时可以借助日志分析工具链定位错误根源所在位置进而采取针对性策略加以处理直至达到预期效果为止。 ```bash adb logcat | grep "error" ``` 上述命令可以帮助快速过滤出安卓调试桥接器传递过来的日志信息中的异常记录片段供进一步研究诊断之用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值