You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已Root的Android4.4.2设备执行存在的32位命令行程序提示文件未找到

问题根因

你遇到的「文件存在但执行报No such file or directory」是Android低版本运行自编译二进制的常见问题,核心原因有3个,按出现概率从高到低排序:

  • 编译参数不匹配Android 4.4.2的系统要求:你用的NDK目标API版本高于19(Android 4.4.2对应API等级19),动态编译的二进制内置的动态链接器路径和旧版Android不匹配,内核加载ELF文件时找不到链接器就会返回ENOENT错误,被shell识别为文件不存在。
  • 架构编译错误:GT-9301i是armv7架构的32位手机,如果你编译的32位二进制是x86架构,也会触发同类型报错。
  • 分区挂载限制:/data/local/tmp分区被挂载为noexec属性,禁止执行分区内的可执行文件。

解决步骤

按顺序执行以下排查操作:

  1. 验证二进制架构
    执行命令file ./file查看输出,确认返回信息包含ARM 32-bit、armeabi-v7a相关描述。如果显示为Intel 80386等x86架构描述,重新编译时指定目标架构为armeabi-v7a即可。
  2. 优先使用静态编译
    编译时添加-static参数生成静态链接的二进制,静态编译的文件不依赖系统动态链接器和内置库,兼容性更强,可直接避开动态链接器路径不匹配的问题。如果必须使用动态编译,将NDK的minSdkVersion/目标API等级改为19再重新编译。
  3. 修复分区挂载属性
    执行命令mount | grep /data/local/tmp查看输出,如果返回结果中包含noexec参数,执行mount -o remount,rw,exec /data/local/tmp重新挂载分区为可执行状态,再尝试运行二进制。
  4. 备用验证方案
    如果以上操作都无效,将二进制移动到/system/bin/目录,授予755权限后再执行,/system分区默认拥有执行权限,可排除挂载属性影响。

内容的提问来源于stack exchange,提问作者han.k

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 08:54:03