error: only position independent executables (PIE) are supported

简介: 由于使用了NDK编译的可执行文件在应用中调用,在4.4及之前的版本上一直没出问题。在AndroidL上的运行情况发现,当运行该可执行文件时,报如下错误:error: only position independent executables (PIE) are supported.PIE这个安全机制从4.1引入,但是Android L之前的系统版本并不会去检验可执行文件是否基于PIE编译出的。

由于使用了NDK编译的可执行文件在应用中调用,在4.4及之前的版本上一直没出问题。在AndroidL上的运行情况发现,当运行该可执行文件时,报如下错误:

error: only position independent executables (PIE) are supported.

PIE这个安全机制从4.1引入,但是Android L之前的系统版本并不会去检验可执行文件是否基于PIE编译出的。因此不会报错。但是Android L已经开启验证,如果调用的可执行文件不是基于PIE方式编译的,则无法运行。解决办法非常简单,在Android.mk中加入如下flag就行。

LOCAL_CFLAGS += -pie -fPIE
LOCAL_LDFLAGS += -pie -fPIE
相关文章
如何用限制立方样条(RCS)做生存分析?
如何用限制立方样条(RCS)做生存分析?
978 0
如何用限制立方样条(RCS)做生存分析?
|
XML Android开发 数据格式
Android深度定制化TabLayout:圆角,渐变色,背景边框,圆角渐变下划线,基于Android原生TabLayout
Android深度定制化TabLayout:圆角,渐变色,背景边框,圆角渐变下划线,基于Android原生TabLayout 在附录1的基础上丰富自定义的TabLayout,这次增加两个内容:1, 当选中某一个切换卡时候,文本字体变粗。
6572 0
|
6月前
|
数据管理 API
鸿蒙开发:简单实现一个服务卡片
form_config配置文件里面可选的属性非常之多,以上的表格,并未列举全面,大家在写的时候,一定要去官方文档进行查阅。
172 2
|
9月前
|
数据安全/隐私保护
5分钟注册一个可用Gemini的谷歌邮箱账号
5分钟注册一个可用Gemini的谷歌邮箱账号
3406 23
5分钟注册一个可用Gemini的谷歌邮箱账号
|
存储 关系型数据库 MySQL
MySQL中的Redo Log、Undo Log和Binlog:深入解析
【10月更文挑战第21天】在数据库管理系统中,日志是保障数据一致性和完整性的关键机制。MySQL作为一种广泛使用的关系型数据库管理系统,提供了多种日志类型来满足不同的需求。本文将详细介绍MySQL中的Redo Log、Undo Log和Binlog,从背景、业务场景、功能、底层实现原理、使用措施等方面进行详细分析,并通过Java代码示例展示如何与这些日志进行交互。
1147 0
|
监控 网络安全 调度
Quartz.Net整合NetCore3.1,部署到IIS服务器上后台定时Job不被调度的解决方案
解决Quartz.NET在.NET Core 3.1应用中部署到IIS服务器上不被调度的问题,通常需要综合考虑应用配置、IIS设置、日志分析等多个方面。采用上述策略,结合细致的测试和监控,可以有效地提高定时任务的稳定性和可靠性。在实施任何更改后,务必进行充分的测试,以验证问题是否得到解决,并监控生产环境的表现,确保长期稳定性。
899 1
|
Linux Docker 容器
Centos安装docker(linux安装docker)——超详细小白可操作手把手教程,包好用!!!
本篇博客重在讲解Centos安装docker,经博主多次在不同服务器上测试,极其的稳定,尤其是阿里的服务器,一路复制命令畅通无阻。
21544 5
Centos安装docker(linux安装docker)——超详细小白可操作手把手教程,包好用!!!
|
前端开发 网络架构
Angular 路由器:使用 RouterLink、Navigate 或 NavigateByUrl 进行导航
Angular 路由器:使用 RouterLink、Navigate 或 NavigateByUrl 进行导航
200 0
|
中间件 应用服务中间件 Apache
Higress有对max_request_bytes做限制吗?我有个应用上传文件报413 request entity too large错误
Higress有对max_request_bytes做限制吗?我有个应用上传文件报413 request entity too large错误
452 0
|
缓存 安全 网络安全
net::ERR_CONNECTION_RESET
`net::ERR_CONNECTION_RESET` 错误通常表示网络连接被重置。这可能是由于以下原因之一导致的: 1. 网络问题: 该错误可能是由于网络中断、不稳定的连接或基础设备故障等引起的。请确保你的网络连接正常,并尝试刷新页面或重新启动网络设备。 2. 防火墙或安全软件: 有时,防火墙或某些安全软件可能会干扰网络连接并重置它。尝试禁用防火墙或安全软件,然后再次访问网页,看看问题是否解决。 3. 代理设置: 如果你使用了代理服务器,尝试禁用代理并直接连接到互联网,然后检查问题是否仍然存在。 4. 网站服务器问题: `net::ERR_CONNECTION_RESET` 错误也可
16943 0