Android 6.0以上手机报 so: has text relocations 问题的终极解决方案

简介: Android 6.0以上手机报 so: has text relocations 问题的终极解决方案

最近做串口通信时,引入so文件报libxxx.so- has text relocations。

 问题产生的原因:


 在Android6.0之后,在载入.so库时,会从以前的warning变为error,应用程序不能在6.0设备上使用,因此需要适配。


如果没有工程中的.so库的C/C++源码,比如是使用的第三方的.so库,那么只能在gradle中将 targetSdkVersion 减低版本至22或以下 的办法暂时解决了,或者更新第三方库。

这个问题的官方回复如下:


https://code.google.com/p/Android-developer-preview/issues/detail?id=3028


这个问题出现在loadLibrary()的过程中. 在Android 6.0之前, text reloactions问题, 会在编译的过程中, 作为warning报出来, log大致如下:

[plain] view plain copy ActivityManager: WARNING: linker: libdvm.so has text relocations. This is wasting memory and is a security risk. Please fix

在Android6.0中,原来的warning升级为error,因此6.0系统中运行程序会crash。


text reloactions又被称为TEXTREL,它与PIC相关,先说说PIC:

PIC: Position Independent Code, 指一段代码, 在加载到内存后, 其物理地址与代码本身是无关的.


解决方案:

方案一(官方推荐):

https://code.google.com/p/android-developer-preview/issues/detail?id=3028为Google推荐的方案


方案二:

使用的第三方的.so库,那么只能将targetSdkVersion 减低版本至22或以下 暂时解决了,或者更新第三方库。


这个博客讲得也不错:https://blog.csdn.net/ahence/article/details/68953878



相关文章
|
4月前
|
Android开发 数据安全/隐私保护
安卓手机修改设备id, 安卓硬改一键新机,手机机型修改(伪装)
提供了完整的设备信息修改功能,包含设备模板配置、基础信息修改、网络信息修改、模拟器检测绕
|
4月前
|
存储 人工智能 文字识别
三款安卓手机word编辑器下载,Microsoft Word,wps office,Word手机版,手机word编辑查看阅读器,PDF转换器apk下载
WPS Office是一款功能强大的办公软件,支持文档编辑、表格处理和演示文稿制作,兼容多种格式并提供丰富的云服务。它具备低内存占用、快速运行的特点,支持跨设备同步与多人协作,内置海量模板及AI辅助功能,如智能写作和PPT自动生成。此外,还可扫描文件、编辑PDF并转换为其他格式,极大提升办公效率,适合手机用户便捷操作。
383 1
|
5月前
|
Android开发
安卓硬改一键新机工具,一键修改手机型号,串号网卡Imei、sn码【仅供学习参考】
声明部分:仅供学习参考使用,基于Xposed框架实现的设备信息伪装模块的完整代码,包含多个功能模块:
|
4月前
|
API Android开发 数据安全/隐私保护
|
5月前
|
存储 JSON API
安卓ck提取工具,可提取手机cookie插件,AUTOJS即可实现
怎么用autojs提取手机端的CK?其实autojs是支持提取ck的但是他提取的不是浏览器的CK,二十他自身浏览器环境的c
|
5月前
|
Java Android开发
安卓手机硬改工具, 设备型号修改神器, 安卓硬改一键新机
通过Java创建可执行JAR来修改安卓设备信息。核心功能包括读取系统属性
|
5月前
|
存储 Android开发
一键新机安卓无限, 免root改手机机型, 手机信息修改型号伪装
AndroidManifest.xml配置 资源文件管理 各系统服务的Hook
|
8月前
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
|
12月前
|
Android开发 数据安全/隐私保护 虚拟化
安卓手机远程连接登录Windows服务器教程
安卓手机远程连接登录Windows服务器教程
2418 5
|
12月前
|
开发框架 前端开发 Android开发
探索安卓和iOS应用开发中的跨平台解决方案
【10月更文挑战第42天】在移动应用开发的广阔天地中,安卓和iOS系统如同两座巍峨的山峰,分别占据着半壁江山。开发者们在这两座山峰之间穿梭,努力寻找一种既能节省资源又能提高效率的跨平台开发方案。本文将带你走进跨平台开发的世界,探讨各种解决方案的优势与局限,并分享一些实用的代码示例,助你在应用开发的道路上更加游刃有余。

热门文章

最新文章