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



相关文章
|
15小时前
|
监控 网络协议 数据安全/隐私保护
手机socket套接字75秒超时问题及解决方案
手机socket套接字75秒超时问题及解决方案
6 0
|
4天前
|
算法 Android开发
Compose - Text 详解,2024年Android社招面试题精选
Compose - Text 详解,2024年Android社招面试题精选
Compose - Text 详解,2024年Android社招面试题精选
|
7天前
|
Android开发
Android中Glide加载Https图片失败的解决方案
Android中Glide加载Https图片失败的解决方案
20 1
|
7天前
|
安全 编译器 API
Android HAL深入探索(5): 调试HAL报错与解决方案
Android HAL深入探索(5): 调试HAL报错与解决方案
54 1
|
7天前
|
存储 应用服务中间件 网络安全
Android 网络链接稳定性测试解决方案
Android 网络链接稳定性测试解决方案
25 0
|
7天前
|
安全 Shell Android开发
Android系统 init.rc sys/class系统节点写不进解决方案和原理分析
Android系统 init.rc sys/class系统节点写不进解决方案和原理分析
40 0
|
7天前
|
存储 Java API
Android 浅度解析:mk预置AAR、SO文件、APP包和签名
Android 浅度解析:mk预置AAR、SO文件、APP包和签名
96 0
|
7天前
|
网络协议 安全 Linux
如何使用Android手机通过JuiceSSH远程访问本地Linux服务器
如何使用Android手机通过JuiceSSH远程访问本地Linux服务器
|
7天前
|
编译器 调度 Android开发
构建高效Android应用:Kotlin协程的优雅解决方案
【4月更文挑战第14天】 在移动开发领域,性能优化和资源管理是提升用户体验的关键因素。随着Kotlin语言在Android平台上的普及,协程作为其核心特性之一,为开发者提供了一种轻量级的并发处理手段。本文将深入探讨Kotlin协程在Android应用中的运用,通过实例分析其如何简化异步任务,提升应用响应性,并保证代码的简洁与可维护性。我们将透过源码剖析、性能对比及最佳实践,揭示协程在现代Android开发中的重要角色。
|
7天前
|
Android开发
安卓远离手机app
远离手机是专门为防止年轻人上瘾而打造的生活管理类的软件,适度用手机,保护眼睛,节约时间。
12 0
安卓远离手机app